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; }
代码案例(结构体,函数指针,指针函数,冒泡排序)
原创
©著作权归作者所有:来自51CTO博客作者缘起愿落的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
代码案例(结构体,函数指针,指针函数,冒泡排序) 修改
结构体,函数指针,指针函数,冒泡排序
结构体 指针函数 函数指针 冒泡排序 -
*指针_函数指针、指针控制数组、静态链表(结构体指针)
指针的相关基本概念在之前的文章:*”操作符。使用结构体指针时...
i++ #include 数组 -
函数 结构体 指针
参考地址:http://blog.csdn.net/ysdaniel/article/details/6667204//====...
#include 函数指针 赋值 javascript -
函数指针数组指针+结构体数组
输出:
#include 2d 结构体数组 i++ 3c -
函数指针,使用qsort,进行结构体排序
#include #include #define STU_NAME_LEN 16/*学生信息*/typedef struct student_tag{ char name[STU_NAME_LEN]; ...
函数指针 #include sort函数 数组 #define