C语言有n个学生的信息(学号、姓名、成绩),要求按照成绩的高低输出各学生的信息 {{10101,"Zhang",78},{10103,"Wang",98.5},{10106,"Li",86},{10108,"Ling",73.5},{10110,"Fun",100}
时间: 2023-07-14 17:13:28 浏览: 57
以下是按照成绩高低输出学生信息的C语言代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 5
struct student {
int id;
char name[20];
float score;
};
int main() {
struct student students[MAX_STUDENTS] = {
{10101, "Zhang", 78},
{10103, "Wang", 98.5},
{10106, "Li", 86},
{10108, "Ling", 73.5},
{10110, "Fun", 100}
};
int i, j;
struct student temp;
// 冒泡排序
for (i = 0; i < MAX_STUDENTS - 1; i++) {
for (j = 0; j < MAX_STUDENTS - i - 1; j++) {
if (students[j].score < students[j+1].score) {
temp = students[j];
students[j] = students[j+1];
students[j+1] = temp;
}
}
}
// 输出排序后的学生信息
printf("按成绩高低排序后的学生信息:\n");
for (i = 0; i < MAX_STUDENTS; i++) {
printf("学号:%d\t姓名:%s\t成绩:%.2f\n",
students[i].id, students[i].name, students[i].score);
}
return 0;
}
```
输出结果如下:
```
按成绩高低排序后的学生信息:
学号:10110 姓名:Fun 成绩:100.00
学号:10103 姓名:Wang 成绩:98.50
学号:10106 姓名:Li 成绩:86.00
学号:10101 姓名:Zhang 成绩:78.00
学号:10108 姓名:Ling 成绩:73.50
```