对结构体数组里面的内容进行排序
#include"stdio.h"
#include"string.h"
#define TYPE student
typedef struct{
char name[20];
char school[30];
int age;
}student;
typedef int(*pFun)(TYPE, TYPE);
int fun3(TYPE a, TYPE b)
{
return a.age>b.age;
}
int fun4(TYPE a, TYPE b)
{
return strcmp(a.school, b.school)>0;
}
void bubbleSort(TYPE *arr, int len, pFun fun)
{
TYPE tmp;
for (int i = 0; i <len-1; i++)
{
for (int j = 0; j < len-1; j++)
{
if (fun(arr[j],arr[j+1]))
{
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
int main()
{
student stu[5] = {
{ "张三", "清华大学", 18 },
{ "李四", "北大大学", 20 },
{ "王飞", "湖南大学", 24 },
{ "德玛", "战争学院", 16 },
{ "李飞", "家里蹲大学", 26 },
};
bubbleSort(stu, 5, fun4);
for (int i = 0; i < 5; i++)
{
printf("%s %s %d\n", stu[i].name, stu[i].school, stu[i].age);
}
return 0;
}