1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > C语言模拟实现标准库函数之qsort() 2

C语言模拟实现标准库函数之qsort() 2

时间:2023-02-11 09:53:34

相关推荐

C语言模拟实现标准库函数之qsort() 2

C语言模拟实现标准库函数之qsort() <1>

/csdn_kou/article/details/80158194

排序数字

int int_cmp(const void *elem1, const void *elem2){return *(int *)elem1 - *(int *)elem2;}int main(){int arr[] = { 9,8,7,6,5,4,3,2,1 };int size = sizeof(arr) / sizeof(arr[0]);int i = 0;qsort(arr, size, sizeof(int), int_cmp);for (i = 0; i < size; i++){printf("%d ", arr[i]);}system("pause");return 0;}

排序字符串

int compare(const void * a, const void * b){return (*(char*)a - *(char*)b);}int main(){char s[4][6] = { "dog","cat","pig" ,"tiger"}; //字符串数组排序 qsort(s, sizeof(s)/sizeof(s[0]), sizeof(s[0]), compare); //sizeof(s[0])=sizeof(char)for (int i = 0; i<sizeof(s) / sizeof(s[0]); i++)printf("%s\n", s[i]);system("pause");return 0;}

按字典顺序排列

#include<stdio.h>#include <stdlib.h>#include <string.h>int compare(const void * a, const void * b){return (*(char*)a - *(char*)b);}int main(){int n;scanf("%d", &n);char str[1000][1000];char temp[1000];for (int i = 0; i<n; i++){scanf("%s", &str[i]);}*str[n] = '\0';qsort(str, n, sizeof(str[0]), compare); //sizeof(s[0])=sizeof(char)for (int i = 0; i<n; i++){printf("%s\n", str[i]);}return 0;}

结构体排序

1.例一

(改编自网上代码)

#include <stdio.h>#include <stdlib.h>#define NUM 5typedef struct{int date;int value;}X_S;int cmpfun1(const void * a, const void * b){X_S * p1 = (X_S *)a;X_S * p2 = (X_S *)b;return p1->value - p2->value;}int cmpfun2(const void * a, const void * b){X_S * p1 = (X_S *)a;X_S * p2 = (X_S *)b;return p1->value < p2->value;}int quickSort(){X_S Xlist[NUM];int Ilist[NUM];int i = 0;for (i = 0; i < NUM; i++){Xlist[i].date = i + 1;//double t = (double)i - 50.3;//Xlist[i].value = (int)(t * t + 5.6);Xlist[i].value = rand();}printf("\n-------------before sorted-------------\n");for (i = 0; i < NUM; i++){printf("num : %3d, value : %4d\n", Xlist[i].date, Xlist[i].value);}qsort(Xlist, NUM, sizeof(X_S), cmpfun1);printf("\n-------------after sorted-------------\n");for (i = 0; i < NUM; i++){printf("num : %3d, value : %4d\n", Xlist[i].date, Xlist[i].value);}qsort(Xlist, NUM, sizeof(X_S), cmpfun2);printf("\n-------------after sorted-------------\n");for (i = 0; i < NUM; i++){printf("num : %3d, value : %4d\n", Xlist[i].date, Xlist[i].value);}return 0;}int main(){quickSort();system("pause");return 0;}

例二

简陋的通讯录

/csdn_kou/article/details/80287640

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。