2016-10-19 6 views
0

Ich habe ein Programm, das einen Benutzer fragt, wie viele Quizzes sie eingeben möchten, die Noten speichert und den Durchschnitt berechnet. Die Note muss zwischen 0 und 100 liegen. Wenn ich jedoch eine Note über 100 gebe, ist der Durchschnitt falsch. Es setzt die Summe nicht zurück. Wenn ich 120 eintrage und es mich auffordert, die Noten erneut einzugeben, verwendet es immer noch 120 bei der Berechnung des Durchschnitts. Wie bekomme ich es zurückzusetzen?Setzen Sie die Summe zurück, wenn Sie den Durchschnitt berechnen

Hinweis: Ich möchte das Format nicht ändern (z. B. mit einer while-Schleife).

#include <iostream> 
using namespace std; 
int main(){ 
    int n, i; 
    float num[13], sum=0.0, average; 
    cout << "Enter the numbers of quizzes from 1-13: "; 
    cin >> n; 

while (n < 1 || n > 13) 
{ 
    cout << "You must enter a number from 1 - 13." << endl; 
    cout << "Enter the number of quizzes you would like to input(1-13): “; 
    cin >> n; 

} 


for(i=0; i<n; ++i) 
    { 
     cout << i+1 << ". Enter number: "; 
     cin >> num[i]; 
     sum+=num[i]; 


    while (num[i] < 0 || num[i] > 100) 
    { 
    cout << “You must enter a number between 0 and 100. Re enter scores.”; 
     cout << i+1 << ". Enter number: "; 
     cin >> num[i]; 
    } 
    } 

    average=sum/n; 
    cout << "Average = " << average; 
    return 0; 
} 

Antwort

0

Einfach die sum+=num[i] hinter der while (num[i] < 0 || num[i] > 100) ... Schleife!

Auf diese Weise können Sie nur gültige Zahlen zusammenfassen.

for(i=0; i<n; ++i) 
{ 
    cout << i+1 << ". Enter number: "; 
    cin >> num[i]; 
    //sum+=num[i]; remove here !! 

    while (num[i] < 0 || num[i] > 100) 
    { 
    cout << “You must enter a number between 0 and 100. Re enter scores.”; 
    cout << i+1 << ". Enter number: "; 
    cin >> num[i]; 
    } 

    sum+=num[i]; // <- insert here 
} 
+0

Thank you so much. So offensichtlich jetzt. – Joe

0
for(i=0; i<n; ++i) 
    { 
     cout << i+1 << ". Enter number: "; 
     cin >> num[i]; 

    while (num[i] < 0 || num[i] > 100) 
    { 
    cout << “You must enter a number between 0 and 100. Re enter scores.”; 
     cout << i+1 << ". Enter number: "; 
     cin >> num[i]; 
    } 
    } 


    sum+=num[i]; 
    average=sum/n; 
    cout << "Average = " << average; 
    return 0; 
} 
+0

Vielen Dank! – Joe

Verwandte Themen