一个班上有30名学生,每个学生的数据作为一个记录,每个记录包括学 号、姓名、三门课程的成绩和三门课程平均成绩,从键盘输入学生的学号、姓名 及三门课的成绩。要求打印三门课程平均成绩最高分的学生记录。用c语言编程并输出运行结果
时间: 2024-10-24 22:14:25 浏览: 106
iOS-Course:在我的iOS编程课程中为学生构建的iOS应用程序。 它使用Parse允许学生注册该应用程序,上传照片并分享有关自己的一些信息。 它还具有供所有用户发布到的提要。
在C语言中,你可以使用结构体来表示一个学生的信息,并通过循环遍历整个数组,找出平均成绩最高的学生。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h>
// 定义学生信息结构体
typedef struct {
int student_id; // 学号
char name[50]; // 姓名
float score[3]; // 三门课程成绩
float avg_score; // 平均成绩
} Student;
void input_student(Student* student) {
printf("请输入学生学号、姓名以及三门课的成绩(分数之间用空格隔开):\n");
scanf("%d %s", &student->student_id, student->name);
for (int i = 0; i < 3; i++) {
scanf("%f", &student->score[i]);
}
// 计算平均成绩
student->avg_score = (student->score[0] + student->score[1] + student->score[2]) / 3.0;
}
// 比较函数,用于找到平均成绩最高的学生
int compare_avg(const void* a, const void* b) {
const Student* s1 = (const Student*)a;
const Student* s2 = (const Student*)b;
return s2->avg_score - s1->avg_score;
}
int main() {
Student students[30]; // 创建学生数组,假设能容纳30个学生
int n_students = 0; // 初始化学生人数
// 输入所有学生信息
while (n_students < 30) {
input_student(&students[n_students]);
n_students++;
}
// 对学生进行排序,找出平均成绩最高者
qsort(students, n_students, sizeof(Student), compare_avg);
// 打印最高平均成绩的学生信息
printf("平均成绩最高的学生记录为:\n");
printf("学号: %d\n", students[0].student_id);
printf("姓名: %s\n", students[0].name);
printf("三门课程成绩: %.2f %.2f %.2f\n", students[0].score[0], students[0].score[1], students[0].score[2]);
printf("平均成绩: %.2f\n", students[0].avg_score);
return 0;
}
```
当你运行这个程序时,它会提示你逐个输入每个学生的学号、姓名和三门课程成绩,然后计算并存储平均成绩。最后,它会自动按平均成绩降序排列学生,并显示平均成绩最高的那名学生的信息。
阅读全文