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; }