我有一个不会停止的函数for循环。 这里是一个用于查找一个人的成绩全功能,将它们添加在一起,则显示的平均屏幕上:For循环不停止
float Student::average() {
cout << "How many grades would you like to enter? (Up to ten)\n";
float x;
cin >> x;
cout << "What is your first grade?";
cin >> grade[0];
int i = 1;
for (i; i = x; i++) {
cout << "What is the next number?\n";
cin >> grade[i];
}
averageGrade = std::accumulate(grade, grade+10, 0.0);
averageGrade = averageGrade/10;
return averageGrade;
}
,这里是for循环自身:
for (i; i = x; i++) {
cout << "What is the next number?\n";
cin >> grade[i];
}
的错误也输出(但仍然允许程序运行)说:
1> c:\ users \ hastudent \ documents \ visual studio 2008 \ projects \ weapons \ weapon \ weapon.cpp(25):warning C4244 :'=':收敛sion从'float'到'int',可能丢失数据
1> c:\ users \ hastudent \ documents \ visual studio 2008 \ projects \ weapons \ weapon \ weapon.cpp(30):warning C4244:' =”:转换从‘双’到‘浮动’,数据
该程序起到其要求的下一个号码的点的可能的损失。然后你输入号码,它一直问你。
这些是_warnings_,而不是_errors_。 –
你应该为'x'使用'int';我认为不可能输入一半的成绩。另外,您应该认真考虑为变量使用更多描述性名称。使用'i'作为计数器是好的,但用'numGrades'代替'x'将使代码更容易阅读。 –
实际上我有numGrades之前,但我改变它为我的易用性。此外,for循环现在可以工作,但现在无论何时显示averageGrade,控制台都只显示其内存地址。 – ChrisMP