// Program to loop results, and average them
#include "stdafx.h"
#include <iostream>
int main()
{
const int Limit = 5;
double Grades, ModuleNumber;
for(double ModuleNumber = 0; ModuleNumber < Limit ; ++ModuleNumber)
{
std::cout << "Module Number:" << ModuleNumber + 1 << std::endl;
std::cout << "Input your grades:" << std::endl;
double sum = 0;
int count = 0;
while (std::cin >> Grades)
{
++count;
sum += Grades;
}
double AverageGrade = sum / count;
std::cout << "The average Grade for Module: "<< ModuleNumber + 1 << " is "<< AverageGrade << std::endl;
std::cout << std::endl;
}
return 0;
}
在我第一次执行代码后,它立即迭代了接下来的4个循环,并显示平均值的结果:
-NAN(IND)
我是编程领域的新手,并想知道为什么会这样。
答案 0 :(得分:1)
NaN的浮点值(无论大小写)通常来自零除零。 (NaN代表非数字)。如果std::cin >> Grades
第一次在循环中失败,则循环将立即结束,sum
和count
都将为零,AverageGrade
的值将为NaN。因此,在提示时,您可能没有输入有效的浮点值。