用C语言写:有n个学生的信息(包括学号,姓名,成绩),要求按照成绩的高低顺序输出学生的信息。
时间: 2024-01-02 22:04:03 浏览: 141
定义一个包含学生信息(学号,姓名,成绩)的顺序表
下面是用C语言实现按照成绩高低顺序输出学生信息的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student {
int id;
char name[20];
int score;
};
int cmp(const void *a, const void *b) {
struct student *s1 = (struct student *)a;
struct student *s2 = (struct student *)b;
return s2->score - s1->score;
}
int main() {
int n, i;
printf("请输入学生人数:");
scanf("%d", &n);
struct student students[n];
for (i = 0; i < n; i++) {
printf("请输入第%d个学生的学号、姓名、成绩:", i+1);
scanf("%d %s %d", &students[i].id, students[i].name, &students[i].score);
}
qsort(students, n, sizeof(struct student), cmp);
printf("按照成绩从高到低输出学生信息:\n");
for (i = 0; i < n; i++) {
printf("%d %s %d\n", students[i].id, students[i].name, students[i].score);
}
return 0;
}
```
运行示例:
```
请输入学生人数:3
请输入第1个学生的学号、姓名、成绩:1001 ZhangSan 80
请输入第2个学生的学号、姓名、成绩:1002 LiSi 90
请输入第3个学生的学号、姓名、成绩:1003 WangWu 70
按照成绩从高到低输出学生信息:
1002 LiSi 90
1001 ZhangSan 80
1003 WangWu 70
```
首先输入学生人数,然后依次输入每个学生的学号、姓名、成绩。使用qsort函数对学生数组进行排序,排序的依据是cmp函数中定义的成绩从高到低。最后依次输出排好序的学生信息。
阅读全文