从键盘输入若干名学生数据(包括学号 姓名 三门课成绩 ),计算每位学生的总分,输出总分最高的学生的信息.使用定义结构和C语言
时间: 2023-12-26 22:18:36 浏览: 153
下面是一份示例代码,实现输入学生信息、计算总分、找出总分最高的学生并输出其信息的功能:
```c
#include <stdio.h>
#define MAX_STUDENT_NUM 100 // 最大学生数量
// 定义学生结构体
struct student {
int id; // 学号
char name[20]; // 姓名
int score1; // 第一门课成绩
int score2; // 第二门课成绩
int score3; // 第三门课成绩
int total_score; // 总分
};
int main() {
struct student students[MAX_STUDENT_NUM];
int student_num = 0; // 学生数量
int max_score = 0; // 最高总分
int max_score_index = -1; // 最高总分的学生下标
// 输入学生信息
printf("请输入学生信息(学号 姓名 三门课成绩):\n");
while (student_num < MAX_STUDENT_NUM) {
struct student s;
if (scanf("%d %s %d %d %d", &s.id, s.name, &s.score1, &s.score2, &s.score3) != 5) {
break;
}
s.total_score = s.score1 + s.score2 + s.score3;
students[student_num] = s;
student_num++;
}
// 找出总分最高的学生
for (int i = 0; i < student_num; i++) {
if (students[i].total_score > max_score) {
max_score = students[i].total_score;
max_score_index = i;
}
}
// 输出总分最高的学生的信息
if (max_score_index >= 0) {
struct student s = students[max_score_index];
printf("总分最高的学生信息:\n");
printf("学号:%d\n", s.id);
printf("姓名:%s\n", s.name);
printf("第一门课成绩:%d\n", s.score1);
printf("第二门课成绩:%d\n", s.score2);
printf("第三门课成绩:%d\n", s.score3);
printf("总分:%d\n", s.total_score);
} else {
printf("没有输入学生信息或者输入的学生数量为0!\n");
}
return 0;
}
```
使用示例:
```
请输入学生信息(学号 姓名 三门课成绩):
1001 Tom 90 85 95
1002 Jerry 80 90 75
1003 Alice 87 93 89
1004 Bob 70 75 80
1005 Cindy 92 88 94
1006 David 82 85 78
输入结束
总分最高的学生信息:
学号:1005
姓名:Cindy
第一门课成绩:92
第二门课成绩:88
第三门课成绩:94
总分:274
```
阅读全文