首页 > 代码库 > 代码案例(结构体,函数指针,指针函数,冒泡排序)
代码案例(结构体,函数指针,指针函数,冒泡排序)
typedef struct { char name[20]; int age; float score; }Stu; #import <Foundation/Foundation.h> //姓名升序 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; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。