定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩 2、从键盘输入10个学生的以上内容 3、输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩 4、输出三门课程的平均分数最高的学生的学号、姓名及其平均分 5、将10个学生按照平均分从高到低进行排序,
时间: 2023-12-15 09:24:50 浏览: 100
定义一个有10个元素的数组,用其代表10个学生的考试成绩,从键盘输入10个成绩,统计平均成绩,输出高于平均成绩的序号。
好的,我可以帮你回答这个问题。
以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
#define N 10
#define COURSE_NUM 3
typedef struct {
int id; // 学号
char name[20]; // 姓名
int score[COURSE_NUM]; // 三门课的成绩
float average; // 平均分
} Student;
int main() {
Student students[N];
int i, j, max_score, max_score_course;
float max_average;
int max_average_index;
// 输入学生信息
printf("请依次输入10位学生的学号、姓名、三门课的成绩:\n");
for (i = 0; i < N; i++) {
scanf("%d %s %d %d %d", &students[i].id, students[i].name, &students[i].score[0], &students[i].score[1], &students[i].score[2]);
// 计算平均分
students[i].average = (students[i].score[0] + students[i].score[1] + students[i].score[2]) / 3.0;
}
// 输出单门课成绩最高的学生
max_score = students[0].score[0];
max_score_course = 0;
for (i = 1; i < N; i++) {
if (students[i].score[0] > max_score) {
max_score = students[i].score[0];
max_score_course = 0;
}
if (students[i].score[1] > max_score) {
max_score = students[i].score[1];
max_score_course = 1;
}
if (students[i].score[2] > max_score) {
max_score = students[i].score[2];
max_score_course = 2;
}
}
printf("单门课成绩最高的学生是 %d %s,第%d门课的成绩是 %d\n", students[i].id, students[i].name, max_score_course + 1, max_score);
// 输出三门课程的平均分数最高的学生
max_average = students[0].average;
max_average_index = 0;
for (i = 1; i < N; i++) {
if (students[i].average > max_average) {
max_average = students[i].average;
max_average_index = i;
}
}
printf("三门课程的平均分数最高的学生是 %d %s,平均分是 %.2f\n", students[max_average_index].id, students[max_average_index].name, max_average);
// 按照平均分从高到低排序
for (i = 0; i < N - 1; i++) {
for (j = i + 1; j < N; j++) {
if (students[i].average < students[j].average) {
Student temp = students[i];
students[i] = students[j];
students[j] = temp;
}
}
}
// 输出排序后的学生信息
printf("按照平均分从高到低排序后的学生信息为:\n");
for (i = 0; i < N; i++) {
printf("%d %s %d %d %d %.2f\n", students[i].id, students[i].name, students[i].score[0], students[i].score[1], students[i].score[2], students[i].average);
}
return 0;
}
```
希望能够帮到你。
阅读全文