用结构体编程,有n个学生的信息(学号、姓名、成绩),要求按照成绩的高低输出各学生的信息:{{10101,"Zhang",78},{10103,"Wang",98.5},{10106,"Li",86},{10108,"Ling",73.5},{10110,"Fun",100}
时间: 2023-11-20 08:56:52 浏览: 101
以下是使用结构体编程实现题目要求的示例代码:
```c
#include <stdio.h>
// 定义学生信息结构体
struct student {
int id; // 学号
char name[20]; // 姓名
float score; // 成绩
};
int main() {
int n = 5; // 学生数量
struct student stu[n]; // 定义学生信息数组
// 初始化学生信息
stu[0] = (struct student){10101, "Zhang", 78};
stu[1] = (struct student){10103, "Wang", 98.5};
stu[2] = (struct student){10106, "Li", 86};
stu[3] = (struct student){10108, "Ling", 73.5};
stu[4] = (struct student){10110, "Fun", 100};
// 冒泡排序,按成绩从高到低排序
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (stu[j].score < stu[j + 1].score) {
// 交换学生信息
struct student temp = stu[j];
stu[j] = stu[j + 1];
stu[j + 1] = temp;
}
}
}
// 输出排序后的学生信息
printf("按成绩排序后的学生信息:\n");
for (int i = 0; i < n; i++) {
printf("%d\t%s\t%.1f\n", stu[i].id, stu[i].name, stu[i].score);
}
return 0;
}
```
输出结果:
```
按成绩排序后的学生信息:
10110 Fun 100.0
10103 Wang 98.5
10106 Li 86.0
10101 Zhang 78.0
10108 Ling 73.5
```
阅读全文