我正在尝试制作一个程序,从用户那里收到4个学生姓名和每个学生的3个考试成绩。在显示每个名称及其3个测试分数时,我遇到了问题。 例如,如果我有约翰,鲍勃,迈克尔和玛丽,所有4名学生将与玛丽的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;
}
}
}
第一个功能正常,但我对第二个功能的输出有问题。有什么建议?谢谢。
答案 0 :(得分:1)
让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;