计算平均值时重置总和

Reset the sum when calculating average

本文关键字:平均值 计算      更新时间:2023-10-16

我有一个程序,它询问用户他们想要输入多少个测验,存储分数,并计算平均值。分数必须在0到100之间。然而,当我进入100分以上的成绩时,平均成绩是错误的。它不会重置总和。如果我输入120,它提示我重新输入成绩,它在计算平均值时仍然使用120。我怎么让它重置?

注意:我不想改变格式(比如使用while循环)。

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

sum+=num[i]放到while (num[i] < 0 || num[i] > 100) ...循环的后面!

这样你只能对有效的数字求和。

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