C++实现二维数组N个学生M门成绩,求出每个学生的平均成绩及每门课的平均成绩。 输入数组: grade[4][3]= { {10,10,10}, {2,0,1}, {8,6,9}, {8,4,10} }; 具体代码实现如下:
#include<iostream> #include<iomanip> using namespace std; const int stu_num = 4; const int course_num = 3; void computerStu(const int grade[][course_num],double stuAvg[]) { for(int i=1;i<=stu_num;i++) { double stuTotal = 0; for(int j=1;j<=course_num;j++) { stuTotal = stuTotal + grade[i-1][j-1]; } stuAvg[i-1] = stuTotal/course_num; } } void computerCourse(const int grade[][course_num],double courseAvg[]) { for(int i = 1;i<=course_num;i++) { double courseTotal = 0; for(int j = 1;j<=stu_num;j++) { courseTotal = courseTotal + grade[j-1][i-1]; } courseAvg[i-1]=courseTotal/stu_num; } } void display(int grade[][course_num],const double stuAvg[],const double courseAvg[]) { cout.setf(ios::fixed); cout.setf(ios::showpoint); cout.precision(1); cout<<setw(10)<<"Student" <<setw(5)<<"Ave" <<setw(15)<<"Quizzes"<<endl; for(int i=1;i<=stu_num;i++) { cout<<setw(10)<<i <<setw(5)<<stuAvg[i-1]<<""; for(int j=1;j<=course_num;j++) cout<<setw(5)<<grade[i-1][j-1]; cout<<endl; } cout<<"course average = "; for(int j = 1;j <= course_num;j ++) cout<<setw(5)<<courseAvg[j-1]; cout<<endl; } int main() { double stuAvg[stu_num]; double courseAvg[course_num]; int grade[4][3]= { {10,10,10}, {2,0,1}, {8,6,9}, {8,4,10} }; computerStu(grade,stuAvg); computerCourse(grade,courseAvg); display(grade,stuAvg,courseAvg); return 0; }