Ten zapis
cout << "Wprowadz elementy tablicy " << n << "-elementowej:" << endl;
for (int i = 0; i < n; i++)
{
cout << "tab[" << i << "] = ";
cin >> tab[i];
}
daje użytkownikowi możliwość wprowadzenia liczb w pewnym zakresie, przez niego wybranym, żeby obliczyć min i max, musisz zainicjować je wartościami początkowymi, więc w tym przypadku pierwsza wartość przedziału to tab[0].
np. dla
float tab[n] = { 3, 9, -5, 14, 8, 24, -1.5, 0, 0.75, 1 };
tab[0] ma wartość 3, czyli zainicjujemy min i max liczbą 3
float tab[n] = { -3, -9, -5, -14, -8, -24, -1.5, -10, -0.75, -1 };
a tu mamy, tab[0] ma wartość -3, czyli zainicjujemy min i max liczbą -3
Rozważ takie scenariusze:
min i max - nie posiadają, żadnej wartości początkowej, a użytkownik podał liczby jak poniżej tab[n] = { ... }
float tab[n] = { -3, -9, -5, -14, -8, -24, -1.5, -10, -0.75, -1 };
...
//min = 0;
//min = tab[0];
//max = tab[0];
//max = 0;
pełny kod
#include <iostream>
using namespace std;
int main()
{
const int n = 10;
//float tab[n];
float suma = 0;
float min, max;
int ujemne = 0, dodatnie = 0, zerowe = 0;
cout << "Wprowadz elementy tablicy " << n << "-elementowej:" << endl;
//float tab[n] = { 3, 9, -5, 14, 8, 24, -1.5, 0, 0.75, 1 };
//float tab[n] = { 3, 9, 5, 14, 8, 24, 1.5, 10, 0.75, 1 };
float tab[n] = { -3, -9, -5, -14, -8, -24, -1.5, -10, -0.75, -1 };
for (int i = 0; i < n; i++)
{
cout << "tab[" << i << "] = " << tab[i] << endl;
//cin >> tab[i];
}
//min = 0;
//min = tab[0];
//max = tab[0];
//max = 0;
for (int i = 0; i < n; i++)
{
suma += tab[i];
if (tab[i] < min)
{
min = tab[i];
}
if (tab[i] > max)
{
max = tab[i];
}
if (tab[i] > 0)
{
dodatnie++;
}
if (tab[i] < 0)
{
ujemne++;
}
if (tab[i] == 0)
{
zerowe++;
}
}
cout << endl << "Suma elementow tablicy wynosi: " << suma << endl;
cout << "Srednia elementow tablicy wynosi: " << (suma / n) << endl;
cout << endl << "Najmniejszy element tablicy to: " << min << endl;
cout << "Najwiekszy element tablicy to: " << max << endl;
cout << endl << "W tablicy jest " << dodatnie << " elementow dodatnich." << endl;
cout << "W tablicy jest " << ujemne << " elementow ujemnych." << endl;
cout << "W tablicy jest " << zerowe << " elementow zerowych." << endl;
return 0;
}

teraz
max=0 (przypisane zero na "sztywno") a min nie posiada, żadnej wartości początkowej, a użytkownik podał liczby jak poniżej tab[n] = { ... }
float tab[n] = { -3, -9, -5, -14, -8, -24, -1.5, -10, -0.75, -1 };
//min = 0;
//min = tab[0];
//max = tab[0];
max = 0;

min=0 (przypisane zero na "sztywno") a max nie posiada, żadnej wartości początkowej, a użytkownik podał liczby jak poniżej tab[n] = { ... }
float tab[n] = { 3, 9, 5, 14, 8, 24, 1.5, 10, 0.75, 1 };
min = 0;
//min = tab[0];
//max = tab[0];
//max = 0;

teraz
min i max - tab[0], a użytkownik podał liczby jak poniżej tab[n] = { ... }
float tab[n] = { 3, 9, 5, 14, 8, 24, 1.5, 10, 0.75, 1 };
//min = 0;
min = tab[0];
max = tab[0];
//max = 0;

float tab[n] = { -3, -9, -5, -14, -8, -24, -1.5, -10, -0.75, -1 };
//min = 0;
min = tab[0];
max = tab[0];
//max = 0;

i na koniec
#include <iostream>
using namespace std;
int main()
{
const int n=10;
float suma=0;
int ujemne=0, dodatnie=0, zerowe=0;
cout << "Uzytkownik wprowadzil takie dane do tab[n]:\n"
<< "{ 3, 9, -5, 14, 8, 24, -1.5, 0, 0.75, 1 }\n\n";
float tab[n] = { 3, 9, -5, 14, 8, 24, -1.5, 0, 0.75, 1 };
float min=tab[0];
float max=tab[0];
float last_min=min; // do demonstarcji w petli ponizej
float last_max=max; // do demonstarcji w petli ponizej
cout << "min = tab[0] = " << tab[0] << "\n"
<< "max = tab[0] = " << tab[0];
for (int i=1; i<n; i++)
{
cout << "\n\nmin = " << min << "; tab[" << i << "] = " << tab[i];
if (tab[i] > min)
cout << "\nmin = " << min << " poniewaz tab[" << i << "] = " << tab[i] << " jest wieksze.";
else {
last_min = min;
min = tab[i];
cout << "\nmin = " << min << " poniewaz tab[" << i << "] = " << tab[i] << " jest mniejsze od " << last_min;
}
cout << "\nmax = " << max << "; tab[" << i << "] = " << tab[i];
if (tab[i] < max)
cout << "\nmax = " << max << " poniewaz tab[" << i << "] = " << tab[i] << " jest mniejsze.";
else {
last_max = max;
max = tab[i];
cout << "\nmax = " << max << " poniewaz tab[" << i << "] = " << tab[i] << " jest wieksze od " << last_max;
}
}
// Zerujemy do obliczen po demonstarcji w petli powyzej
min=tab[0];
max=tab[0];
for (int i=0; i<n; i++)
{
suma += tab[i];
if (tab[i]<min)
min = tab[i];
if (tab[i]>max)
max = tab[i];
if (tab[i]>0)
dodatnie++;
if (tab[i]<0)
ujemne++;
if (tab[i]==0)
zerowe++;
}
cout << "\n\nSuma elementow tablicy wynosi: " << suma
<< "\nSrednia elementow tablicy wynosi: " << (suma / n)
<< "\n\nNajmniejszy element tablicy to: " << min
<< "\nNajwiekszy element tablicy to: " << max
<< "\n\nW tablicy jest " << dodatnie << " elementow dodatnich."
<< "\nW tablicy jest " << ujemne << " elementow ujemnych."
<< "\nW tablicy jest " << zerowe << " elementow zerowych." << endl;
return 0;
}
