C语言编写同一个功能的应用程序,实现下列功能:输入20名同学的学号、姓名、三门课程成绩;计算每位同学的总分与平均分;输出成绩表、显示总分最高分与最低分学生的成绩信息。C语言程序要使用结构体数组保存每名学生的数据
时间: 2024-11-08 14:20:51 浏览: 14
课程设计二: 题目: 学生成绩管理系统 功能: 实现学生信息管理 包括:录入、查询、排序等功能 C语言
在C语言中,你可以使用结构体(struct)来存储学生的信息,并结合数组来存储20名同学的数据。首先,定义一个结构体`Student`:
```c
#include <stdio.h>
// 定义学生结构体
typedef struct {
int id; // 学号
char name[50]; // 姓名
float score[3]; // 三门课程的成绩
} Student;
int main() {
// 定义结构体数组存放20名学生数据
Student students[20];
// 输入学生信息
for (int i = 0; i < 20; i++) {
printf("请输入第 %d 名同学的信息:\n", i + 1);
scanf("%d%s", &students[i].id, students[i].name);
for (int j = 0; j < 3; j++) {
printf("请输入第%d门课程成绩:", j + 1);
scanf("%f", &students[i].score[j]);
}
}
// 计算总分和平均分
float total_score, avg_score;
for (int i = 0; i < 20; i++) {
total_score = 0;
for (int j = 0; j < 3; j++) {
total_score += students[i].score[j];
}
avg_score = total_score / 3;
// 输出单个学生的信息
printf("\n学生 %s 的总分: %.2f 分, 平均分: %.2f 分\n",
students[i].name, total_score, avg_score);
}
// 找出总分最高分和最低分的学生
float max_score = students[0].total_score, min_score = students[0].total_score;
int max_idx = 0, min_idx = 0;
for (int i = 1; i < 20; i++) {
if (students[i].total_score > max_score) {
max_score = students[i].total_score;
max_idx = i;
} else if (students[i].total_score < min_score) {
min_score = students[i].total_score;
min_idx = i;
}
}
printf("\n总分最高的是学生 %s, 成绩: %.2f 分\n",
students[max_idx].name, max_score);
printf("总分最低的是学生 %s, 成绩: %.2f 分\n",
students[min_idx].name, min_score);
return 0;
}
```
在这个程序中,我们首先定义了`Student`结构体,然后通过循环获取每个学生的信息并计算总分和平均分。最后找出总分最高分和最低分的学生并打印他们的信息。
阅读全文