Witam serdecznie
Mam następujący problem mam różne wyniki poza pętlą i w pętli. Jest jeszcze problemem że liczby poza pętlą są bardzo niewymierne. Nie wiem gdzie leży błąd. Będę bardzo wdzięczny jak ktoś mnie naprowadzi gdzie szukać rozwiązania, albo pomoże rozwiązać.
Program ma liczyć średnią z uwzględnieniem ects, "srednia" itp miało mi pomóc znaleźć rozwiązanie, wszakże coś nie wyszło.
#include <iostream>
#include <fstream>
struct oceny
{
std::string subject;
float ocena[20];
float ects[20];
int i=0;
float suma_ocen = 0;
float suma_ects = 0;
float srednia;
};
int main()
{ oceny studia;
std::cout << "Jesli chcesz zakonczyc napisz: koniec" << std::endl;
while (studia.subject != "koniec")
{
std::cout << "Nazwa przedmiotu: " << std::endl;
std::cin >> studia.subject;
std::cin.get();
if (studia.subject != "koniec")
{
std::cout << "Podaj ocene: " << std::endl;
std::cin >> studia.ocena[studia.i];
std::cout << "Ilosc ecetesow: " << std::endl;
std::cin >> studia.ects[studia.i];
}
else
{
std::cout << "Koniec wpisywania" << std::endl;
};
studia.suma_ocen += studia.ocena[studia.i]*studia.ects[studia.i];
studia.suma_ects += studia.ects[studia.i];
std::cout << "suma ocen petla " << studia.suma_ocen << std::endl;
studia.i ++;
};
studia.srednia = studia.suma_ocen / studia.suma_ects;
std::cout << "srednia " << studia.srednia << std::endl;
std::cout << "suma ects " << studia.suma_ects << std::endl;
std::cout << "ilosc przedmitow: " << studia.i << std::endl;
return 0;
}