在主函数中输入n及n个学生的信息(包括学号,姓名,成绩),调用函数按照成绩从高到低的顺序进行排序,最后在主函数中输出排序后的学生信息,c语言
时间: 2024-02-24 08:56:25 浏览: 39
好的,下面是一个实现该功能的C语言程序:
```
#include <stdio.h>
#include <string.h>
struct student {
int id;
char name[20];
int score;
};
void sort_students(struct student s[], int n) {
int i, j;
struct student temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (s[j].score < s[j+1].score) {
temp = s[j];
s[j] = s[j+1];
s[j+1] = temp;
}
}
}
}
int main() {
int n, i;
struct student s[50];
printf("请输入学生人数:");
scanf("%d", &n);
for (i = 0; i < n; i++) {
printf("请输入学生%d的学号、姓名、成绩,用空格隔开:\n", i+1);
scanf("%d%s%d", &s[i].id, s[i].name, &s[i].score);
}
sort_students(s, n);
printf("按照成绩从高到低排序后的学生信息为:\n");
for (i = 0; i < n; i++) {
printf("%d\t%s\t%d\n", s[i].id, s[i].name, s[i].score);
}
return 0;
}
```
在主函数中,我们先输入学生的人数n,然后用一个结构体数组s来存储n个学生的信息,包括学号、姓名和成绩。然后调用函数sort_students来按照成绩从高到低进行排序。最后在主函数中输出排序后的学生信息。函数sort_students中使用了冒泡排序的算法来进行排序。