Witam, rozwiązanie zadania domowego z odc. 11 wyszło mi tak:
float suma=0, srednia=0, szukaj=0, zmienne[1][5]={0};
int main()
{
cout << "Podaj 5 liczb odzielajac je spacja:" << endl;
for (int i=0; i<5; ++i) //pobieranie zmiennych
{
cin >> zmienne[0][i];
suma += zmienne[0][i];
}
srednia = suma / 5; // srednia z pobranych zmiennych
cout <<"Srednia to: "<< srednia<<endl; // tutaj podglad na srednia
for (int i=0; i<5; ++i)
{
zmienne[1][i]=fabs(zmienne[0][i]-srednia); //tu powinienem uzyskaac wartosc bezwgledna z roznicy
}
szukaj=zmienne[1][0]; //tutaj powinieni szukac najmniejszej liczby
if (zmienne[1][1]<szukaj) szukaj=zmienne[1][1];
if (zmienne[1][2]<szukaj) szukaj=zmienne[1][2];
if (zmienne[1][3]<szukaj) szukaj=zmienne[1][3];
if (zmienne[1][4]<szukaj) szukaj=zmienne[1][4];
if (szukaj==zmienne[1][0]) szukaj=zmienne[0][0]; //podmienia liczby w tablicy aby pokazac prawdziwy wynik
else if (szukaj==zmienne[1][1]) szukaj=zmienne[0][1];
else if (szukaj==zmienne[1][2]) szukaj=zmienne[0][2];
else if (szukaj==zmienne[1][3]) szukaj=zmienne[0][3];
else if (szukaj==zmienne[1][4]) szukaj=zmienne[0][4];
cout <<endl<<"Liczba najblizsza sredniej to: "<<szukaj;
getchar();
getchar();
system("cls");
I parę moich pytań: jak deklarowałem wielkość tablicy: zmienne[1][4] - co zwracało błędne wyniki przy ostatniej zmiennej, przy większej tablicy (zmienne[1][5]) problem znika, nie wiem czemu?
Próbowałem linię :
szukaj=zmienne[1][0]; //tutaj powinieni szukac najmniejszej liczby
if (zmienne[1][1]<szukaj) szukaj=zmienne[1][1];
if (zmienne[1][2]<szukaj) szukaj=zmienne[1][2];
if (zmienne[1][3]<szukaj) szukaj=zmienne[1][3];
if (zmienne[1][4]<szukaj) szukaj=zmienne[1][4];
zamknąć w takiej o to pętli, ale wtedy program nie działał poprawnie:
for (int i=0; i<5; ++i)
{
szukaj=zmienne[1][i];
if (zmienne[1][i+1]<szukaj) szukaj=zmienne[1][i+1];
}
I ostatnie jak całość zamknąłem w pętli while(true) dla pierwszego wprowadzenia zmiennych działał poprawnie dla kolejnych już nie.