某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过40人参加考试。请编程计算:(1)每个学生的总分和平均分;(2)每门课程的总分和平均分。 **输入格式要求:"%d" "%ld"(学号) 提示信息:"Input the total number of the students(n<40):" "Input student’s ID and score as: MT EN PH:\n" **输出格式要求:"Counting Result:\n" "Student’s ID\t MT \t EN \t PH \t SUM \t AVER\n" "%12ld\t"(打印学号) "%4d\t"(打印每门课成绩)"%4d\t%5.1f\n"(打印总分和平均分) "SumofCourse \t" "%4d\t"(打印每门课的总分) "\nAverofCourse\t" "%4.1f\t"(每门课的平均分) 程序的运行示例如下: Input the total number of the students(n<=40):4 Input student’s ID and score as: MT EN PH: 070310122 97 87 92 070310123 92 91 90 070310124 90 81 82 070310125 73 65 80 Counting Result: Student’s ID MT EN PH SUM AVER 070310122 97 87 92 276 92.0 070310123 92 91 90 273 91.0 070310124 90 81 82 253 84.3 070310125 73 65 80 218 72.7 SumofCourse 352 324 344 AverofCourse 88.0 81.0 86.0
时间: 2023-07-05 19:32:01 浏览: 302
计算学生总成绩与平均分
5星 · 资源好评率100%
以下是一份可能的代码实现:
```
#include <iostream>
#include <cstdio>
using namespace std;
int main() {
int n;
cout << "Input the total number of the students(n<=40):";
cin >> n;
int sum_mt = 0, sum_en = 0, sum_ph = 0;
printf("Input student's ID and score as: MT EN PH:\n");
for (int i = 0; i < n; i++) {
long long id;
int mt, en, ph;
cin >> id >> mt >> en >> ph;
int sum = mt + en + ph;
double average = sum / 3.0;
sum_mt += mt;
sum_en += en;
sum_ph += ph;
printf("%12lld\t%4d\t%4d\t%4d\t%4d\t%5.1f\n", id, mt, en, ph, sum, average);
}
int sum_course = sum_mt + sum_en + sum_ph;
double aver_course = sum_course / (3.0 * n);
printf("Counting Result:\n");
printf("Student's ID MT EN PH SUM AVER\n");
printf("SumofCourse %4d %4d %4d\n", sum_mt, sum_en, sum_ph);
printf("AverofCourse %4.1f %4.1f %4.1f\n", sum_mt / (double)n, sum_en / (double)n, sum_ph / (double)n);
return 0;
}
```
代码首先读入参加考试的学生总数 `n`,然后循环读入每位学生的学号和三门课的成绩,并计算总分和平均分。在计算过程中,累加每门课程的总分。每个学生的总分和平均分输出后,累加每门课程的总分和。
最后按照题目要求输出结果,其中注意格式的对齐。
阅读全文