![](/img/trans.png)
[英]C++ - Could any help me to translate this for loop to recursion function?
[英]C++ Nested Loop not giving me any values
因此,该嵌套循环应该为用户键入的每个学生生成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;
您永远不会增加counter
,因此它总是小于studentAmt
while (counter < studentAmt)
{
for(int i = 0; i < 10; i++)
{
progExScore = rand() % 100 + 1;
progExTotal = progExTotal + progExScore;
}
progExAvg = progExTotal / 10;
counter++;
}
移动这些声明
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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.