【发布时间】:2021-12-26 19:25:25
【问题描述】:
所以我正在尝试获取学生人数和他们所修课程的成绩,然后得到总数,这就是我现在所拥有的,它一直显示错误:预期的不合格 ID在'int'之前
#include <iostream>
using namespace std;
void findSum(int grades[][], int sumGrades[], int numStudents , int numCourses){
for (int i=0;i<numStudents;i++){
int sum=0;
for (j=0;j<numCourses;j++){
sum+=grades[i][j];
}
sumGrades[i]=sum;
}
}
int main()
{
int numStudents, numCourses;
cout << "Please enter number of students: ";
cin >> numStudents;
cout <<"Please enter number of courses: ";
cin >>numCourses;
int grades[numStudents][numCourses];
int sumGrades[numStudents];
for (int i=0; i<numStudents;i++){
cout << "Please enter grades for student "<< i+1 << ": \n";
for (int j=0; j<numCourses;j++){
cin >> grades[i][j];
}
}
findSum(grades,sumGrades,numStudents,numCourses);
return 0;
}
【问题讨论】:
-
int grades[numStudents][numCourses];是无效的 C++(使用 VLA 扩展)。请改用std::vector。 -
请the help pages,接受SO tour,阅读How to Ask,以及this question checklist。然后edit您的问题以改进它,例如将标题作为您遇到的问题的摘要,将完整和完整的输出复制粘贴到问题中,并在代码中出现错误的行中添加 cmets。
-
@Ashley At lost 这个参数 int Grades[][] 的声明不正确。
-
int grades[numStudents][numCourses];-->std::vector<std::vector<int>> grades(numStudents, std::vector<int>(numCourses));然后:int sumGrades[numStudents];-->std::vector<int> sumGrades(numStudents);。现在,如前所述,您的 C++ 程序无效。另外,需要添加#include <vector>。 -
当然,一旦您进行了这些更改,
findSum参数列表就需要调整。您将不再需要numStudents和numCourses,因为向量通过使用size()成员函数知道有多少学生和课程。