ďťż

Ładny brzuch

Witam
Ostatnio byłem zmuszony wziąć się za C++.
Piszę programik, w którym podawane są 3 oceny z 3 przedmiotów. Program musi obliczyć śr. arytmetyczną dla danego ucznia jak i przedmiotu.
#include <iostream> using namespace std; main() { int liczba, liczba2, liczba3; float ocena[8][2]; cout << "Podaj 3 oceny ucznia nr 1 z przedmiotu nr 1:" << endl; cin >> ocena[0][0] >> ocena[0][1] >> ocena[0][2]; cout << "Podaj 3 oceny ucznia nr 1 z przedmiotu nr 2:" << endl; cin >> ocena[1][0] >> ocena[1][1] >> ocena[1][2]; cout << "Podaj 3 oceny ucznia nr 1 z przedmiotu nr 3:" << endl; cin >> ocena[2][0] >> ocena[2][1] >> ocena[2][2]; cout << "Podaj 3 oceny ucznia nr 2 z przedmiotu nr 1:" << endl; cin >> ocena[3][0] >> ocena[3][1] >> ocena[3][2]; cout << "Podaj 3 oceny ucznia nr 2 z przedmiotu nr 2:" << endl; cin >> ocena[4][0] >> ocena[4][1] >> ocena[4][2]; cout << "Podaj 3 oceny ucznia nr 2 z przedmiotu nr 3:" << endl; cin >> ocena[5][0] >> ocena[5][1] >> ocena[5][2]; cout << "Podaj 3 oceny ucznia nr 3 z przedmiotu nr 1:" << endl; cin >> ocena[6][0] >> ocena[6][1] >> ocena[6][2]; cout << "Podaj 3 oceny ucznia nr 3 z przedmiotu nr 2:" << endl; cin >> ocena[7][0] >> ocena[7][1] >> ocena[7][2]; cout << "Podaj 3 oceny ucznia nr 3 z przedmiotu nr 3:" << endl; cin >> ocena[8][0] >> ocena[8][1] >> ocena[8][2]; cout << endl; cout << "Dane zostaly wprowadzone!" << endl; cout << "Nacisnij '1' aby wyliczyc srednia ocen z danego przedmiotu!" << endl; cout << "Nacisnij '2' aby wyliczyc srednia ocen danego ucznia!" << endl; cin >> liczba; switch(liczba) { case 1: cout << "Podaj numer przedmiotu do obliczenia! \n\n\n"<< endl; cin >> liczba2; switch(liczba2) { case 1: cout << "Ocena z przedmiotu 1: " << (ocena[0][0]+ocena[0][1] +ocena[0][2]+ocena[3][0]+ocena[3] [1]+ocena[3][2]+ocena[6][0]+ocena[6][1] +ocena[6][2])/9 << endl; break; case 2: cout << "Ocena z przedmiotu 1: " << (ocena[0][1]+ ocena[0][2]+ocena[0][3] +ocena[3][0]+ocena[3] [1]+ocena[3][2]+ocena[6][0]+ocena[6][1]+ocena[ 6][2])/9 << endl; break; case 3: cout << "Ocena z przedmiotu 1: " << (ocena[0][1]+ocena[0][2]+ ocena[0][3]+ocena[3][0]+ocena[3] [1]+ocena[3][2]+ocena[6][0]+ocena[6][1] +ocena[6][2])/9 << endl; break; } break; } system("PAUSE"); return 0; }

Problem polega na tym, że przy próbie obliczenia średniej z przedmiotu nr 1 (reszta przedmiotów nie jest gotowa do obliczania), zamiast poprawnej wartości otrzymuję błędną.



ocena[0][2];
Coś takiego nie istnieje.
Zdefiniowałeś tablicę jako ocena[8][2], więc zawiera ona elementy ocena[x][0] i ocena[x][1], nie ma natomiast ocena[x][2].

Nie możesz się też odwołać do ocena[8][y], bo to by był już 9 element tej tablicy, a zadeklarowane jest tylko 8.
Użytkownik Lupinek edytował ten post 04 kwiecień 2008, 18:33
Rzeczywiście :P.
Ale głupi błąd. Bardzo dziękuję :-)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •