C语言结构体1.学生成绩管理:有5个学生,每个学生的数据包括学号、班级、姓名、三门课成绩。从键盘输入5个学生数据,要求打印出每个学生三门课的平均成绩,以及每门课程平均分、最高分学生数据(包括学号、班级、姓名、三门课成绩,平均分)。
时间: 2023-12-15 10:02:31 浏览: 102
好的,这是一个使用 C 语言结构体实现学生成绩管理的问题。你可以参考以下的 C 代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生结构体
struct Student {
char id[20];
char cls[20];
char name[20];
float score1;
float score2;
float score3;
};
// 计算平均分
float avg_score(float score1, float score2, float score3) {
return (score1 + score2 + score3) / 3;
}
int main() {
// 输入学生信息
struct Student students[5];
for (int i = 0; i < 5; i++) {
printf("请输入第%d个学生的学号:", i+1);
scanf("%s", students[i].id);
printf("请输入第%d个学生的班级:", i+1);
scanf("%s", students[i].cls);
printf("请输入第%d个学生的姓名:", i+1);
scanf("%s", students[i].name);
printf("请输入第%d个学生的第一门课成绩:", i+1);
scanf("%f", &students[i].score1);
printf("请输入第%d个学生的第二门课成绩:", i+1);
scanf("%f", &students[i].score2);
printf("请输入第%d个学生的第三门课成绩:", i+1);
scanf("%f", &students[i].score3);
}
// 计算每个学生的平均成绩
for (int i = 0; i < 5; i++) {
printf("%s的平均成绩为:%.2f\n", students[i].name, avg_score(students[i].score1, students[i].score2, students[i].score3));
}
// 计算每门课程平均分、最高分学生数据
float avg_score1 = 0;
float avg_score2 = 0;
float avg_score3 = 0;
float max_score1 = 0;
float max_score2 = 0;
float max_score3 = 0;
struct Student max_student1;
struct Student max_student2;
struct Student max_student3;
for (int i = 0; i < 5; i++) {
avg_score1 += students[i].score1;
avg_score2 += students[i].score2;
avg_score3 += students[i].score3;
if (students[i].score1 > max_score1) {
max_score1 = students[i].score1;
max_student1 = students[i];
}
if (students[i].score2 > max_score2) {
max_score2 = students[i].score2;
max_student2 = students[i];
}
if (students[i].score3 > max_score3) {
max_score3 = students[i].score3;
max_student3 = students[i];
}
}
avg_score1 /= 5;
avg_score2 /= 5;
avg_score3 /= 5;
printf("第一门课程平均分为:%.2f\n", avg_score1);
printf("第二门课程平均分为:%.2f\n", avg_score2);
printf("第三门课程平均分为:%.2f\n", avg_score3);
printf("第一门课程最高分学生数据为:学号:%s,班级:%s,姓名:%s,分数:%.2f,%.2f,%.2f\n", max_student1.id, max_student1.cls, max_student1.name, max_student1.score1, max_student1.score2, max_student1.score3);
printf("第二门课程最高分学生数据为:学号:%s,班级:%s,姓名:%s,分数:%.2f,%.2f,%.2f\n", max_student2.id, max_student2.cls, max_student2.name, max_student2.score1, max_student2.score2, max_student2.score3);
printf("第三门课程最高分学生数据为:学号:%s,班级:%s,姓名:%s,分数:%.2f,%.2f,%.2f\n", max_student3.id, max_student3.cls, max_student3.name, max_student3.score1, max_student3.score2, max_student3.score3);
return 0;
}
```
这段代码可以实现输入5个学生的信息,并计算每个学生的平均成绩,以及每门课程平均分和最高分学生的数据。
阅读全文