我有一個不會停止的函數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