Uczę się programowania w C++ i napotkałem ścianę. Piszę prosty program, który będzie zliczał średnią z zadanej ilości ocen. Do swojego kodu dodałem ifa, który sprawdza, czy podana ocena jest z zakresu od 1 do 6, w przypadku większej, bądź mniejszej liczby wyskoczy komunikat o takim błędzie, a następnie powróci do poprzedniej linii. Na końcu zlicza sumę i średnią z tych ocen. Jednakże zlicza sumę i średnią, nawet z liczby która nie pasuje do zadanego ifa (np wpisując jako jedną z ocen "100", bierze tą "setkę" pod uwagę). Jeśli ktoś może pomóc - to bardzo bym prosił, po uzyskaniu odpowiedzi można usunąć wątek, co by nie zaśmiecać forum.
Oto mój kod:
#include <iostream>
using namespace std;
int ile;
float oceny=1;
float suma=0, srednia;
int main()
{
cout << "Z ilu ocen policzyc srednia?" << endl;
cout << "Podaj liczbe: ";
cin>>ile;
int *tablica;
tablica = new int [ile];
for (int i=0; i<ile; i++)
{
cout << "Podaj " << i+1 << " ocene: ";
cin >> oceny;
if (oceny<=0||oceny>6)
{
cout <<"Podaj ocene z zakresu od 1 do 6!" << endl;
i--;
}
suma = suma + oceny;
}
//cout << suma;
srednia = suma/ile;
cout << "Srednia z podanych ocen wynosi: " << srednia;
delete [] tablica;
return 0;
}