在主函数中输入n及n个学生的信息(包括学号,姓名,成绩),调用函数按照成绩从高到低的顺序进行排序,最后在主函数中输出排序后的学生信息。请用C语言回答。
时间: 2024-03-07 15:50:21 浏览: 130
好的,下面是C语言代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT_NUM 100
typedef struct
{
int id;
char name[20];
int score;
} Student;
void sort(Student *students, int n)
{
int i, j;
Student temp;
for (i = 0; i < n - 1; i++)
{
for (j = i + 1; j < n; j++)
{
if (students[i].score < students[j].score)
{
temp = students[i];
students[i] = students[j];
students[j] = temp;
}
}
}
}
int main()
{
int n, i;
Student students[MAX_STUDENT_NUM];
printf("请输入学生人数:");
scanf("%d", &n);
printf("请输入学生信息(学号 姓名 成绩):\n");
for (i = 0; i < n; i++)
{
scanf("%d %s %d", &students[i].id, students[i].name, &students[i].score);
}
sort(students, n);
printf("按照成绩从高到低排序后的学生信息:\n");
for (i = 0; i < n; i++)
{
printf("%d %s %d\n", students[i].id, students[i].name, students[i].score);
}
return 0;
}
```
在这个程序中,我们使用了结构体来存储学生的信息,包括学号、姓名、成绩。在主函数中,首先要输入学生的人数,然后输入每个学生的信息。接下来调用 `sort()` 函数进行排序,最后输出排序后的学生信息。`sort()` 函数使用了简单的选择排序算法,按照成绩从高到低排序。
阅读全文