【问题标题】:Reset the sum when calculating average计算平均值时重置总和
【发布时间】:2016-10-19 06:36:04
【问题描述】:

我有一个程序询问用户他们想输入多少个测验,存储成绩,然后计算平均值。成绩必须在 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;
}

【问题讨论】:

    标签: c++ sum average


    【解决方案1】:

    只需将sum+=num[i] 放在while (num[i] &lt; 0 || num[i] &gt; 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
    }
    

    【讨论】:

    • 非常感谢。现在很明显了。
    【解决方案2】:
    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;
    }
    

    【讨论】:

    • 非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    • 2016-11-14
    • 2020-12-30
    • 2018-09-26
    相关资源
    最近更新 更多