设计一个程序统计某个班全体学生3门课的考试成绩。要求能输入学生人数,并按编号从小到大的顺序依次输入学生的成绩。在统计出每门课程的全班总分、平均分及每个考生所有考试的总分和平均分。
时间: 2024-05-06 09:15:01 浏览: 167
好的,这是一个求解班级成绩统计的问题。我们可以设计以下程序:
1. 首先,需要输入学生的人数,并创建一个包含学生编号和三科成绩的数组。
2. 接下来,按照学生编号从小到大的顺序输入每个学生的三科成绩。
3. 统计每门课程的总分并计算平均分。
4. 计算每个学生的总分并求出其平均分。
5. 将结果输出。
下面是该程序的具体实现:
```
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int n; //学生人数
cout << "请输入学生人数: ";
cin >> n;
//创建学生成绩数组
int scores[n][4]; //第1列为编号,第2列到第4列为三科成绩
for(int i=0; i<n; i++){
cout << "请输入学生编号和三科成绩(用空格隔开): ";
cin >> scores[i][0] >> scores[i][1] >> scores[i][2] >> scores[i][3];
}
//统计每门课程的总分和平均分
double x_sum=0, y_sum=0, z_sum=0;
for(int i=0; i<n; i++){
x_sum += scores[i][1];
y_sum += scores[i][2];
z_sum += scores[i][3];
}
double x_avg=x_sum/n, y_avg=y_sum/n, z_avg=z_sum/n;
//计算每个学生的总分和平均分
for(int i=0; i<n; i++){
double total_score=scores[i][1]+scores[i][2]+scores[i][3];
double avg_score=total_score/3;
scores[i][4] = total_score; //第5列为该学生的总分
scores[i][5] = avg_score; //第6列为该学生的平均分
}
//输出结果
cout << "学生编号 语文 数学 英语 总分 平均分" << endl;
for(int i=0; i<n; i++){
cout << setw(6) << scores[i][0] << setw(6) << scores[i][1]
<< setw(6) << scores[i][2] << setw(6) << scores[i][3]
<< setw(6) << scores[i][4] << fixed << setprecision(1)
<< setw(10) << scores[i][5] << endl;
}
cout << "全班总分 " << x_sum << " " << y_sum << " " << z_sum
<< " " << x_sum+y_sum+z_sum << endl;
cout << "全班平均分 " << fixed << setprecision(1) << x_avg << " "
<< y_avg << " " << z_avg << " " << (x_avg+y_avg+z_avg)/3 << endl;
return 0;
}
```
希望这个程序可以解决你的问题,如果还有其他问题,请随时提出。
阅读全文