是我的输入输出还是导致问题的其他因素。我对C ++很陌生,所以如果事情很简单,我会提前感到抱歉。如果您需要更多信息,我已在代码中包含有关问题的更多详细信息。
#include <iostream>
#include <iomanip>
using namespace std;
void input(string names[],int grades[][3]){
for(int n=0;n<3;n++){//Enter 3 into the grade book
cout<<"Please enter student name "<<n+1<<endl;
cin>>names[n];
}
for(int r=0;r<3;r++){// Enter 4 grades for each of the 3 students you added to the grade book
cout<<"Please enter 4 grades for "<<names[r]<<endl;
for(int c=0;c<4;c++){
cout<<"Grade "<<c+1<<": ";
cin>>grades[r][c];
}
cout<<endl;
}
}
//ignore this it wil;l be used to average the grades later
void math(int grades[][3], double average[]){
}
//If I input these number just to test the program
//student 1: 1,1,1,1
//student 2: 2,2,2,2
//student 3: 3,3,3,3
//it give me
//student 1: 1,1,1,2
//student 2: 2,2,2,3
//student 3: 3,3,3,3
void output(string names[],int grades[][3],double average[],char letter[]){
for(int r=0;r<3;r++){
cout<<names[r]<<" ";
for(int c=0;c<4;c++){
cout<<grades[r][c]<<" ";
}
cout<<endl;
}
}
int main(){
int grades[2][3];
double average[2];
char letter[2];
string names [2];
input(names,grades);
math(grades,average);
output(names,grades,average,letter);
return 0;
}
答案 0 :(得分:0)
在C ++中,数组声明中使用的数字不是最大索引而是元素数。
你的所有数组声明都缺少一个元素,因此为grades
分配一个元素(对于二维,包括参数),average
,letter
和{{1} }。
答案 1 :(得分:0)
看起来我的经验不如你,但我最近被介绍给了职能部门。
您将下标值传递给grade
参数,而不是将两个下标值都留空。尝试从grades
参数中取出括号中的3。运行代码,看看会发生什么。