首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++嵌套循环没有提供任何值

C++嵌套循环没有提供任何值
EN

Stack Overflow用户
提问于 2015-10-26 07:25:15
回答 2查看 43关注 0票数 0

因此,这个嵌套循环应该为用户输入的每个学生生成10个练习的随机分数。在生成分数后,它必须将所有分数相加,并找到平均分数。然而,当我运行这个程序时,它没有给我任何值。代码如下:

代码语言:javascript
复制
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;
EN

回答 2

Stack Overflow用户

发布于 2015-10-26 07:29:15

您从不递增counter,因此它总是小于studentAmt

代码语言:javascript
复制
while (counter < studentAmt)
{
    for(int i = 0; i < 10; i++)
    {
        progExScore = rand() % 100 + 1;
        progExTotal = progExTotal + progExScore;
    }

    progExAvg = progExTotal / 10;

    counter++;

}
票数 1
EN

Stack Overflow用户

发布于 2015-10-26 07:32:09

移动这些声明

代码语言:javascript
复制
int progExTotal = 0;
int progExTotal = 0;

这句话

代码语言:javascript
复制
cout << progExAvg << endl;

while循环内部

以及这份声明

代码语言:javascript
复制
int progExScore;

在for循环中

考虑到使用像10这样的魔术数字不是一个好主意,最好使用有意义的名字。

此外,您还必须增加可变计数器。例如

代码语言:javascript
复制
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;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33336276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档