C++ 嵌套 for 循环不正确的输出

标签 c++ arrays function for-loop nested-loops

我正在尝试制作一个程序,从用户那里接收每个学生的 4 个学生姓名和 3 个考试成绩。在显示每个名字及其 3 个测试分数时,我遇到了问题。 例如,如果我有 John、Bob、Michael 和 Mary,则显示所有 4 个学生以及 Mary 的 3 个考试成绩。

这是我从用户那里获取数据的函数:

void Student::getName()
{
    for (int i = 0; i < 4; ++i)
    {
        cout << "Enter name: ";
        cin >> name[i];
        for (int j = 0; j < 3; j++)
        {
            cout << "Enter grade: ";
            cin >> testScores[j];
        }
    }
}

这是我用来显示数据的函数:

void Student::setName()
    {
        for (int i = 0; i < 4; ++i)
        {
            cout << "\nName: " << name[i] << endl;
            for (int j =0; j <3; j++)
            {
                cout << "Grade: " << testScores[j] << endl;
            }
        }
    }

第一个函数工作正常,但第二个函数的输出有问题。有什么建议么?谢谢。

最佳答案

制作testScores一个二维数组而不是一维数组,否则你将用学生 2 的成绩覆盖学生 1 的成绩,而学生 2 的成绩又将被学生 3 的成绩覆盖,依此类推,你只剩下学生 4 的成绩。

int testScores[4][3];

然后

替换

cin >> testScores[j];

cin >> testScores[i][j];

在第一个函数中。

替换

cout << "Grade: " << testScores[j] << endl;

cout << "Grade: " << testScores[i][j] << endl;

关于C++ 嵌套 for 循环不正确的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43132538/

相关文章:

c++ - 将函数模板原型(prototype)作为参数传递

java - 这个字符串比较方法有问题

C 函数有时返回太慢

ios - 从 MATLAB 到 XCode 的函数

c++ - 使用 DirectX 9 显示网格

c++ - fork 进程一直监听服务器的端口

c++ - FLTK 和连接字符的问题

c# - 列表数组抛出 NullReferenceException

php - 在 PHP 5.4 中对空 php 数组调用 foreach 是否安全?

c++ - 如何将多维动态数组传递给 C++ 中的函数