函数未显示数组参数的所需输出

Function isn't displaying the desired output from an array argument

提问人:user13484657 提问时间:5/7/2020 最后编辑:user13484657 更新时间:5/7/2020 访问量:41

问:

首先,如果有任何遗漏的信息,或者您需要了解更多信息,请告诉我。无论如何,我都不是一个有经验的程序员,这主要是我为大学课程所做的一个项目。

这是我的函数定义:

void DispReport(string names[], int IDs[], int grades[][8], int numStudents, int numClasswork, int numQuizzes) {

此功能的工作是显示学生姓名的完整表及其 ID 号和成绩。开始时,该函数将显示“Name”、“ID”等标头。然后显示一行连续的连字符作为下面的边框。之后,它将开始提取和显示名称、ID 和等级。这是涉及的循环(我意识到有很多重复性,对不起):

int Qmin, Qmax, CWmin, CWmax, Total;
    for(i = 0; i < numStudents; i++){
        cout << i+1 << ".";
        cout << setw(11) << names[i];
        cout << setw(11) << IDs[i];
        //Display Quizzes, and Qmin ,Qmax, and Qavg
        for(j = 0; j < numQuizzes; j++){
            cout << setw(11) << grades[i][j];
            if(grades[i][j] < grades[i][j+1])
                Qmin = grades[i][j];
            else
                Qmax = grades[i][j];
        };
        cout << setw(11) << Qmin;
        cout << setw(11) << Qmax;
        cout << setw(11) << (Qmin + Qmax)/2;
        //Display Classwork, and CWmin, CWmax, and CWavg
        for(j = numQuizzes; j < (numQuizzes + numClasswork); j++){
            cout << setw(11) << grades[i][j];
            if(grades[i][j] < grades[i][j+1])
                CWmin = grades[i][j];
            else
                CWmax = grades[i][j];
        };
        cout << setw(11) << CWmin;
        cout << setw(11) << CWmax;
        cout << setw(11) << (CWmin + CWmax)/2;
    };

但是,运行此循环不会产生任何结果。它运行一次,输出第一行“1.”,暂停一秒钟,然后程序终止。无。我检查以确保该函数实际上已经接收了我传递给它的数组,并且它都在那里。但是,循环不会显示它们,并且我没有收到任何错误消息。有什么想法吗?cout << names[different indexes to check different names]

C++ 数组函数 循环 IOSTREAM

评论

2赞 273K 5/7/2020
看看什么是调试器以及它如何帮助我诊断问题?
0赞 john 5/7/2020
毫无疑问,您的程序在循环中的某些东西上崩溃了(我不得不说,这看起来确实有点奇怪)。循环中没有任何内容会输出 a,这可能就是您看不到更多输出的原因。尝试在每个 的末尾添加 ,例如,g, .这将强制输出立即出现,并让您更好地了解程序出错的地方。但是有经验的程序员此时会使用调试器。也许是时候学习了?\n<< flushcoutcout << setw(11) << grades[i][j] << flush;
0赞 user13484657 5/7/2020
谢谢。我将尝试使用 flush 和 \n 来查找问题。我可能是一个初学者,但我并非不愿意学习,当然我会研究调试器。再次感谢
0赞 starball 11/24/2022
我知道这是一篇旧文章,这就是为什么我想请您考虑写下您找到的解决方案(请参阅如何回答),或者删除您的问题。

答: 暂无答案