输入3个学生5门课的成绩,计算并输出每门课的最高分及取得最高分的学生编号,用c语言程序怎么写
时间: 2024-05-07 22:17:48 浏览: 71
以下是一个简单的 C 语言程序,它可以实现输入 3 个学生 5 门课的成绩,计算并输出每门课的最高分及取得最高分的学生编号。
```c
#include <stdio.h>
#define NUM_STUDENTS 3
#define NUM_SUBJECTS 5
int main() {
int scores[NUM_STUDENTS][NUM_SUBJECTS];
int max_scores[NUM_SUBJECTS];
int max_score_indices[NUM_SUBJECTS];
// 输入学生成绩
for (int i = 0; i < NUM_STUDENTS; i++) {
printf("请输入第 %d 个学生的成绩(共 %d 门课):\n", i + 1, NUM_SUBJECTS);
for (int j = 0; j < NUM_SUBJECTS; j++) {
scanf("%d", &scores[i][j]);
}
}
// 计算每门课的最高分及取得最高分的学生编号
for (int j = 0; j < NUM_SUBJECTS; j++) {
int max_score = -1;
int max_score_index = -1;
for (int i = 0; i < NUM_STUDENTS; i++) {
if (scores[i][j] > max_score) {
max_score = scores[i][j];
max_score_index = i;
}
}
max_scores[j] = max_score;
max_score_indices[j] = max_score_index;
}
// 输出结果
for (int j = 0; j < NUM_SUBJECTS; j++) {
printf("第 %d 门课的最高分为 %d,是第 %d 个学生获得的。\n", j + 1, max_scores[j], max_score_indices[j] + 1);
}
return 0;
}
```
在这个程序中,我们使用了一个二维数组 `scores` 来存储学生成绩,其中第一维表示学生编号,第二维表示科目编号。`max_scores` 数组用于存储每门课的最高分,`max_score_indices` 数组用于存储取得每门课最高分的学生编号。
程序首先会提示用户输入每个学生的成绩,然后利用两个嵌套的循环来计算每门课的最高分及取得最高分的学生编号。最后,程序会输出每门课的最高分及取得最高分的学生编号。
阅读全文