目录
用qsort函数和cmd函数分别对整型数组,字符数组,字符串数组进行排序
用qsort函数和cmd函数分别对整型数组,字符数组,字符串数组进行排序
一,对整型数组排序
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int cmp(const void *a,const void *b){
return *(int *)a-*(int *)b;
}
int main (){
int a[6]={3,2,1,5,6,4};
for(int i=0;i<6;i++)
printf("%d ",a[i]);
printf("\n");
qsort(a,6,sizeof(a[0]),cmp);
for(int i=0;i<6;i++)
printf("%d ",a[i]);
return 0;
}
二,对字符数组排序
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int cmp(const void *a,const void *b)
{
return strcmp((char *)a,(char *)b);
}
int main (){
char c[200]="BCDEFAG";
for(int i=0;i<strlen(c);i++)
printf("%c ",c[i]);
printf("\n");
qsort(c,strlen(c),sizeof(c[0]),cmp);
for(int i=0;i<strlen(c);i++)
printf("%c ",c[i]);
return 0;
}
三,对字符串的排序(二维数组形式)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int cmp(const void *a,const void *b){
return strcmp((char *)a,(char *)b);
}
int main (){
char c[200][200]={"dog","apple","blue","cat"};
for(int i=0;i<4;i++)
printf("%s\n",c[i]);
printf("\n");
qsort(c,4,sizeof(c[0]),cmp);
for(int i=0;i<4;i++)
printf("%s\n",c[i]);
return 0;
}
四,对字符串的排序(指针数组形式)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int cmp(const void **a,const void **b){
return strcmp(*(char **)a,*(char **)b);
}
int main (){
char *c[200]={"dog","apple","blue","cat"};
for(int i=0;i<4;i++)
printf("%s\n",c[i]);
printf("\n");
qsort(c,4,sizeof(c[0]),cmp);
for(int i=0;i<4;i++)
printf("%s\n",c[i]);
return 0;
}