Te if-y działają w pętli, tylko masz błędne przypisanie wartości
zamień
if (min > c) c = min;
if (max < d) d = max;
na
if (min > c) min = c;
if (max < d) max = d;
co wtedy jest w pewnym sensie odpowiednikiem tego zapisu (zauważ, że do wyznaczania wartości dla min i max wystarczy zmienna c)
min = (min > c ? c : min);
max = (max < c ? c : max);
ale te powyższe warunki (ternary operator), też nie do końca są prawidłowo zastosowane, ponieważ gdy nie spełniony jest warunek min > c to zmienna min jest niepotrzebnie nadpisywana wartością, którą sama posiada. No i ta zmienna d jest niepotrzebna skoro zawiera tą samą wartość co zmienna c, przy każdej iteracji w pętli
d = c = rand() % 99; // Te same wartości przypisane do c i d
Spróbuj się przyjrzeć co się "dzieje" w pętli [ on-line ]
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <random>
using namespace std;
int main()
{
float a;
int d, b, c, min, max;
cout << "Iteracja cwiczenia\n\n";
srand(time(nullptr));
min = max = rand() % 99;
cout << "Wartosci zmiennych przed petla\n"
<< "min = " << min << "\n"
<< "max = " << max << "\n"
<< "c = " << c << "\n"
<< "d = " << d << "\n" << endl;
for (int i = 1; i <5; i++)
{
d = c = rand() % 99;
cout << "Dla i = " << i << "\n"
<< "Przed if\n"
<< "c = " << c << ", d = " << d << "\n"
<< "min = " << min << ", max = " << max << "\n\n";
if (min > c) c = min;
if (max < d) d = max;
cout << "Po if\n"
<< "c = " << c << ", d = " << d << "\n"
<< "min = " << min << ", max = " << max << "\n" << endl;
}
a = (min + max) / 2;
cout << "Wartosci zmiennych po petli\n"
<< "min = " << min << "\n"
<< "max = " << max << "\n"
<< "c = " << c << "\n"
<< "Srednia: "<< fixed << setprecision(2) << a << endl;
//system("pause");
return 0;
}
zmienna b nie jest nigdzie "wykorzystana"
int d, b, c, min, max;
nie bardzo rozumiem co chciałeś osiągnąć tutaj przez dodanie +1 do wartości w zmiennej c
cout << "\t" << c+1 << "\n"; //sprawdzam ostateczna wartosc zmiennej c.
propozycja [ on-line ]
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand(time(nullptr));
unsigned int min, max;
min = max = rand() % 99;
cout << "Iteracja cwiczenia\n\n"
<< "Wartosci poczatkowe\n"
<< "min = " << min << "\n"
<< "max = " << max << "\n" << endl;
for (unsigned int i = 0; i < 5; i++)
{
unsigned int random_number = rand() % 99;
if (min > random_number) min = random_number;
if (max < random_number) max = random_number;
cout << (i + 1) << ". wylosowana liczba to " << setw(2) << random_number << "\n";
}
cout << endl;
float average = static_cast<float>(min + max) / 2;
cout << "Wartosci koncowe - podsumowanie\n"
<< "min = " << min << "\n"
<< "max = " << max << "\n"
<< "Srednia: " << fixed << setprecision(1) << average << endl;
return 0;
}
[ endl vs "\n" (New Line) in C++ ]