繁体   English   中英

C ++嵌套循环没有给我任何值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM