用c语言实现从键盘中输入若干个学生的信息,每个学生信息包括学号,姓名,3门课的成绩,计算每个学生的总分,输出总分最高的学生的信息
时间: 2024-03-08 13:51:13 浏览: 44
好的,我来回答你的问题。
以下是用C语言实现从键盘中输入若干个学生的信息,每个学生信息包括学号,姓名,3门课的成绩,计算每个学生的总分,输出总分最高的学生的信息的代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 100 // 最大学生人数
#define MAX_NAME_LEN 20 // 姓名最大长度
// 学生结构体
struct student {
char id[10]; // 学号
char name[MAX_NAME_LEN]; // 姓名
int score[3]; // 3门课的成绩
int sum; // 总分
};
int main() {
struct student stu[MAX_STUDENTS]; // 存储学生信息的数组
int n; // 学生人数
int i, j; // 循环计数器
int max_sum = 0; // 最高总分
int max_index = 0; // 最高总分的学生在数组中的下标
// 输入学生信息
printf("请输入学生人数:");
scanf("%d", &n);
for (i = 0; i < n; i++) {
printf("请输入第%d个学生的信息:\n", i + 1);
printf("学号:");
scanf("%s", stu[i].id);
printf("姓名:");
scanf("%s", stu[i].name);
for (j = 0; j < 3; j++) {
printf("第%d门课成绩:", j + 1);
scanf("%d", &stu[i].score[j]);
}
stu[i].sum = stu[i].score[0] + stu[i].score[1] + stu[i].score[2];
}
// 计算最高总分
for (i = 0; i < n; i++) {
if (stu[i].sum > max_sum) {
max_sum = stu[i].sum;
max_index = i;
}
}
// 输出总分最高的学生的信息
printf("总分最高的学生的信息如下:\n");
printf("学号:%s\n", stu[max_index].id);
printf("姓名:%s\n", stu[max_index].name);
printf("成绩:%d %d %d\n", stu[max_index].score[0], stu[max_index].score[1], stu[max_index].score[2]);
printf("总分:%d\n", stu[max_index].sum);
return 0;
}
```
这段代码中,我们使用了结构体来存储每个学生的信息,包括学号、姓名、3门课的成绩和总分。首先,我们输入学生人数和每个学生的信息,然后计算每个学生的总分,最后找出总分最高的学生并输出其信息。
注意,为了保证代码的简洁和可读性,我们没有进行输入的错误处理,实际使用时需要加上。