typedef struct{ char name[20]; int age; float score;}Stu;#import//姓名升序void sortByName(Stu *p , int count ){ for (int i = 0 ; i < count -1; i ++) { for (int j= 0 ; j < count -1-i; j ++) { if (strcmp((p + j)->name, (p + j + 1)->name) > 0 ) { Stu temp = *(p + j); *(p + j) = *(p + j + 1); *(p + j + 1) = temp; } } } }//年龄void sortByAge( Stu *p , int count ){ for (int i = 0 ; i < count -1; i ++) { for (int j= 0 ; j < count -1-i; j ++) { if ((p + j)->age > (p + j + 1)->age) { Stu temp = *(p + j); *(p + j) = *(p + j + 1); *(p + j + 1) = temp; } } }}//成绩void sortByScore(Stu *p , int count ){ for (int i = 0 ; i < count -1; i ++) { for (int j= 0 ; j < count -1-i; j ++) { if ((p + j)->score > (p + j+ 1)->score ) { Stu temp = *(p + j); *(p + j) = *(p + j + 1); *(p + j + 1) = temp; } } }}void outPut(Stu *p , int count ){ for (int i = 0 ; i < count ; i ++) { printf("name = %s , age = %d , score = %.2f\n" , (p + i)->name,(p + i)->age , (p + i)->score); } }typedef void (*FUN) (Stu *p , int count);void student (FUN func ,Stu *p , int count ){ func(p , count);}int main(int argc, const char * argv[]){ Stu stu[5] = { {"zhang",20,80}, {"wang", 22,82}, {"li",23,86}, {"zhao",22,83}, {"liu",20,89} }; Stu *p = NULL; p = stu; student(outPut,p,5); student(sortByName,p, 5); student(outPut,p,5); // outPut(p, 5); // sortByName(p, 5); // outPut(p, 5); return 0;}