#define _CRT_SECURE_NO_WARNINGS//必须放在第一行
#include <stdio.h>
#include<string.h>
#include<stdlib.h>
//输入五个学生信息,按成绩从高到低排序
struct Student {
char name[20];
int id;
int score;
};
//输入学生信息
void Input(struct Student* arr, int len)
{
printf("请输入%d个学生信息\n", len);
for (int i = 0; i < len; i++)
scanf("%d %s %d", &arr[i].id, &arr[i].name, &arr[i].score);
}
//输出学生信息
void Show(struct Student* arr, int len)
{
for (int i = 0; i < len; i++)
{
printf("%d,%s,%d\n", arr[i].id, arr[i].name, arr[i].score);
}
}
int cmpfunc(const void* a, const void* b)
{
return -(((struct Student*)a)->score - ((struct Student*)b)->score);
}
int main() {
struct Student arr[5];
Input(arr, sizeof(arr) / sizeof(arr[0]));
qsort(arr, sizeof(arr) / sizeof(arr[0]),sizeof(struct Student),cmpfunc);
Show(arr, sizeof(arr) / sizeof(arr[0]));
return 0;
}