Cześć wszystkim :)
Zaczynam dopiero swoje boje z programowaniem, uczę się wg kursu C++ Pana Zelenta na kanale Youtube.
Jestem obecnie na etapie tablic. Chciałem trochę rozbudować program "dzienniczek ucznia", tak aby liczył średnią ważoną z podanych ocen. Pół godziny wczoraj spędziłem nad rzeczą która wykracza poza moje granice logiki. Do rzeczy.
Program z jakiegoś powodu przypisuje zmiennej wartość znikąd, choć zmienną zadeklarowałem jako zero. Co ciekawe, po przestawieniu kolejności deklaracji zmiennych, przypisuje już normalnie zero, jak trzeba. Nie wiem, czy ma to związek z tym, że jedna zmienna jest tablicą 3x100.
Wkleję screeny, żeby pokazać o co mi chodzi. Oczywiście kod jest pewnie do zrefaktoryzowania, ale polecę dalej z nauką, bo czasami mając większą wiedzę człowiek robi rzeczy kompletnie inaczej :)
Wklejam kolejno kod działający błędnie, a później poprawny. Z góry dzięki za pomoc i wyjaśnienie.
https://drive.google.com/open?id=0Bw3BHVEg9BgDWGlkRkdNZVV4eU0
https://drive.google.com/open?id=0Bw3BHVEg9BgDemdWWHUzbkdrTTg
EDIT: forum wkleja w bardzo małej rozdzielczości, więc daję linki do dysku google.
#include <iostream>
using namespace std;
int dzi[3][100], suma1=0, suma2=0;
float srednia1, srednia2;
int main()
{
for (int i=0; i<100; i++)
{
cout<<"Podaj "<<i+1<<" ocene: ";
cin>>dzi[1][i];
cout<<"Podaj wage: ";
cin>>dzi[2][i];
dzi[3][i]=dzi[1][i]*dzi[2][i];
//cout<<dzi[1][i]<<endl;
//cout<<dzi[2][i]<<endl;
//cout<<dzi[3][i]<<endl;
cout<<suma1<<endl;
suma1+=dzi[2][i];
//cout<<"Suma wag: "<<suma1<<endl;
suma2+=dzi[3][i];
//cout<<"Suma ocen: "<<suma2<<endl;
srednia1=suma2*100/suma1;
srednia2=suma2/suma1;
cout<<"Twoja srednia to: "<<srednia2<<"."<<srednia1-(srednia2*100)<<endl<<endl;
}
return 0;
}