因此,这个嵌套循环应该为用户输入的每个学生生成10个练习的随机分数。在生成分数后,它必须将所有分数相加,并找到平均分数。然而,当我运行这个程序时,它没有给我任何值。代码如下:
int progExAvg, progExScore, studentAmt;
int counter = 0;
int progExTotal = 0;
srand(time(0));
cout << "Please enter how many students do you have in your class: ";
cin >> studentAmt;
cin.sync();
while (counter < studentAmt)
{
for(int i = 0; i < 10; i++)
{
progExScore = rand() % 100 + 1;
progExTotal = progExTotal + progExScore;
}
progExAvg = progExTotal / 10;
}
cout << progExAvg << endl;
return 0;发布于 2015-10-26 07:29:15
您从不递增counter,因此它总是小于studentAmt
while (counter < studentAmt)
{
for(int i = 0; i < 10; i++)
{
progExScore = rand() % 100 + 1;
progExTotal = progExTotal + progExScore;
}
progExAvg = progExTotal / 10;
counter++;
}发布于 2015-10-26 07:32:09
移动这些声明
int progExTotal = 0;
int progExTotal = 0;这句话
cout << progExAvg << endl;while循环内部
以及这份声明
int progExScore;在for循环中
考虑到使用像10这样的魔术数字不是一个好主意,最好使用有意义的名字。
此外,您还必须增加可变计数器。例如
const int TOTAL_EXERCISES = 10;
while (counter++ < studentAmt)
{
int progExTotal = 0;
int progExTotal = 0;
for(int i = 0; i < TOTAL_EXERCISES; i++)
{
int progExScore = rand() % 100 + 1;
progExTotal = progExTotal + progExScore;
}
progExAvg = progExTotal / TOTAL_EXERCISES;
cout << progExAvg << endl;
}https://stackoverflow.com/questions/33336276
复制相似问题