从键盘输入若干个学生的信息,每个学生信息包括学号、姓名、3门课的成绩,计算每个学生的总分,输出总分最高的学生的信息。使用c语言代码实现
时间: 2023-12-15 21:10:21 浏览: 51
好的,以下是实现这个功能的 C 语言代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 100 // 最多输入 100 个学生的信息
#define MAX_NAME_LEN 20 // 最大姓名长度
#define MAX_ID_LEN 10 // 最大学号长度
typedef struct {
char id[MAX_ID_LEN]; // 学号
char name[MAX_NAME_LEN]; // 姓名
int scores[3]; // 3门课的成绩
int total_score; // 总分
} student;
int main() {
student students[MAX_STUDENTS];
int n, i, j, max_score = -1, max_index;
printf("请输入学生的个数:");
scanf("%d", &n);
// 输入每个学生的信息
for (i = 0; i < n; i++) {
printf("请输入第 %d 个学生的信息(学号、姓名、3门课的成绩):\n", i + 1);
scanf("%s %s %d %d %d", students[i].id, students[i].name,
&students[i].scores[0], &students[i].scores[1], &students[i].scores[2]);
// 计算总分
students[i].total_score = students[i].scores[0] + students[i].scores[1] + students[i].scores[2];
}
// 找出总分最高的学生
for (i = 0; i < n; i++) {
if (students[i].total_score > max_score) {
max_score = students[i].total_score;
max_index = i;
}
}
// 输出总分最高的学生的信息
printf("总分最高的学生是:\n");
printf("学号:%s\n", students[max_index].id);
printf("姓名:%s\n", students[max_index].name);
printf("成绩:%d %d %d\n", students[max_index].scores[0], students[max_index].scores[1], students[max_index].scores[2]);
printf("总分:%d\n", students[max_index].total_score);
return 0;
}
```
这个程序首先会让用户输入学生的个数,然后依次输入每个学生的学号、姓名和 3 门课的成绩。程序会计算每个学生的总分,并找出总分最高的学生,最后输出该学生的信息。