我刚刚完成了对作业的编码。但是有一些我自己无法解决的错误。 这是一个问题:编写一个程序,查找有多少学生获得的分数比平均30个测验的分数高。(我需要循环回答此问题)
当我运行输入代码为10、10、10、10、1的代码时,我得到了真正的答案,这是4个学生的分数超出平均水平。 但是,当我用输入80、50、30、65、47输入代码来运行代码时,我得到的答案是错误的。有3个学生获得的分数比测验的平均值还要高。
#include <iostream>
using namespace std;
int main()
{
int mark, student = 0;
int i, sum = 0;
double avg;
for(i=1; i <= 5; i++){
cout << "Enter the student " << i << " mark : ";
cin >> mark;
sum = sum + mark;
avg = sum / 5;
if(mark > avg) {
student++;
}
}
cout << "\nRESULT : ";
cout << "\n" << student << " student get mark more than the average
of quiz." << endl;
return 0;
}
答案 0 :(得分:1)
在第一个循环中,总和为10,平均值为2。您需要先计算最终平均值,然后在第二个循环中计算通过的学生。
答案 1 :(得分:0)
我现在明白了。感谢您的快速回复。
这是我的最终代码:
#include <iostream>
using namespace std;
int main()
{
int mark[5];
int i, sum = 0;
double avg;
int student = 0;
for(i=0; i<5; i++){
cout << "Enter the student mark : ";
cin >> mark[i];
sum = sum + mark[i];
}
avg = sum / 5.0;
for(i=0; i<5; i++){
if(mark[i]>avg){
student++;
}
}
cout << "\nRESULT : ";
cout << "\n" << student << " student get mark more than the average of quiz."
<< endl;
return 0;
}
如果有错误告诉我。