用c++编程:输入5个学生4门功课的成绩,然后求出1.每个学生的总分2.每门课程的平均分3.输出总分最高的学生的姓名和总分数
时间: 2023-04-10 20:04:39 浏览: 236
以下是代码实现:
```c
#include <stdio.h>
int main() {
int scores[5][4]; // 5个学生,每个学生4门功课
char names[5][20]; // 5个学生的姓名
int total_scores[5] = {0}; // 每个学生的总分
float avg_scores[4] = {0}; // 每门课程的平均分
int max_total_score = 0; // 总分最高的学生的总分数
int max_total_score_index = 0; // 总分最高的学生的下标
// 输入学生姓名和成绩
for (int i = 0; i < 5; i++) {
printf("请输入第%d个学生的姓名:", i + 1);
scanf("%s", names[i]);
for (int j = 0; j < 4; j++) {
printf("请输入%s的第%d门功课成绩:", names[i], j + 1);
scanf("%d", &scores[i][j]);
total_scores[i] += scores[i][j];
}
}
// 计算每门课程的平均分
for (int j = 0; j < 4; j++) {
for (int i = 0; i < 5; i++) {
avg_scores[j] += scores[i][j];
}
avg_scores[j] /= 5;
}
// 找出总分最高的学生
for (int i = 0; i < 5; i++) {
if (total_scores[i] > max_total_score) {
max_total_score = total_scores[i];
max_total_score_index = i;
}
}
// 输出结果
printf("每个学生的总分如下:\n");
for (int i = 0; i < 5; i++) {
printf("%s的总分为%d\n", names[i], total_scores[i]);
}
printf("每门课程的平均分如下:\n");
for (int j = 0; j < 4; j++) {
printf("第%d门功课的平均分为%.2f\n", j + 1, avg_scores[j]);
}
printf("总分最高的学生是%s,总分为%d\n", names[max_total_score_index], max_total_score);
return 0;
}
```
如果您有更多问题,欢迎继续提问。
阅读全文