用结构体表示,输入5个学生的信息,包括学号(num),姓名(name),三门课成绩(score),要求输出每个学生的所有信息(学号、姓名、三门课程成绩、三门课平均成绩)、3门课的总平均成绩,以及总分最高的学生的所有信息。
时间: 2024-09-25 15:04:56 浏览: 73
2.编写一个函数print, 打印一个学生的成绩数组, 该数组中有5个学生的数据记录,每个记录包括num,name,score[3],用主函数输入这些记录,用p
在C语言中,你可以创建一个名为`Student`的结构体来存储学生的信息,包括学号、姓名和三门课程的成绩。首先定义结构体:
```c
typedef struct {
int num; // 学号
char name[50]; // 姓名
float score[3]; // 三门课成绩
} Student;
```
接下来,你需要输入学生的数据并计算相关信息。这里是一个简单的函数示例,用于获取学生信息并输出:
```c
void display_student_info(Student student) {
printf("学号:%d\n", student.num);
printf("姓名:%s\n", student.name);
printf("课程成绩:");
for (int i = 0; i < 3; i++) {
printf("%.2f ", student.score[i]);
}
printf("\n");
float avg_score = (student.score[0] + student.score[1] + student.score[2]) / 3.0;
printf("平均成绩:%.2f\n", avg_score);
double total_avg = 0;
for (int j = 0; j < 3; j++) {
total_avg += student.score[j];
}
total_avg /= 3.0;
printf("三门课总平均成绩:%.2f\n", total_avg);
// 找出总分最高学生的信息
Student max_score_student = student;
if (total_avg > max_score_student.score[0] + max_score_student.score[1] + max_score_student.score[2]) {
max_score_student = (Student){
.num = student.num,
.name = student.name,
.score = {total_avg, total_avg, total_avg}
};
}
printf("总分最高学生信息:\n");
display_student_info(max_score_student);
}
// 主程序入口
int main() {
Student students[5]; // 假设你有5个学生的数组
// 输入学生信息...
for (int i = 0; i < 5; i++) {
display_student_info(students[i]);
}
return 0;
}
```
在这个例子中,你需要在主程序中输入5个学生的详细信息,并调用`display_student_info()`函数来显示他们的信息。
阅读全文