c语言 从键盘输入若干名学生的信息,每个学生的信息包括学号、姓名,以及高等数学、大学英语及专业课三门课的成绩要求实现:(1)计算每个学生的总分,输出总分最高的学生的信息
时间: 2024-01-06 12:07:14 浏览: 165
可以使用结构体来存储每个学生的信息和成绩,具体实现如下:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENT_NUM 100 // 最大学生人数
struct Student {
int id; // 学号
char name[20]; // 姓名
float math; // 高等数学成绩
float english; // 大学英语成绩
float major; // 专业课成绩
float total; // 总分
};
int main() {
struct Student students[MAX_STUDENT_NUM]; // 存储学生信息和成绩的数组
int n; // 学生人数
float maxTotal = 0; // 最高总分
// 输入学生信息和成绩
printf("请输入学生人数(不超过%d人):", MAX_STUDENT_NUM);
scanf("%d", &n);
for (int i = 0; i < n; i++) {
printf("请输入第%d个学生的信息和成绩:\n", i+1);
printf("学号:");
scanf("%d", &students[i].id);
printf("姓名:");
scanf("%s", students[i].name);
printf("高等数学成绩:");
scanf("%f", &students[i].math);
printf("大学英语成绩:");
scanf("%f", &students[i].english);
printf("专业课成绩:");
scanf("%f", &students[i].major);
// 计算总分
students[i].total = students[i].math + students[i].english + students[i].major;
// 更新最高总分
if (students[i].total > maxTotal) {
maxTotal = students[i].total;
}
}
// 输出总分最高的学生信息
printf("总分最高的学生信息如下:\n");
for (int i = 0; i < n; i++) {
if (students[i].total == maxTotal) {
printf("学号:%d\n", students[i].id);
printf("姓名:%s\n", students[i].name);
printf("高等数学成绩:%f\n", students[i].math);
printf("大学英语成绩:%f\n", students[i].english);
printf("专业课成绩:%f\n", students[i].major);
printf("总分:%f\n", students[i].total);
}
}
return 0;
}
```
在程序中,除了原来的结构体 `Student`,新增了一个成员变量 `total`,用来存储每个学生的总分。在输入学生信息和成绩的过程中,计算了每个学生的总分,并更新了最高总分。最后输出了总分最高的学生信息。
阅读全文