|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int compare(const void *e1,const void *e2)
- {
- return strcmp(*(char **)e1,*(char **)e2);
- }
- //身份证排序
- int main()
- {
- char a[3][18]={'\0'},b[3][18]={'\0'};
- int i,j,k;
- //输入
- for(i=0;i<3;i++)
- {
- scanf("%s",a[i]);
- }
- //提取出生日期
- for(j=0;j<3;j++)
- {
- for(i=6,k=0;i<14,k<8;i++,k++)
- {
- b[j][k]=a[j][i];
- }
- }
- //打印出生日期
- for(i=0;i<3;i++)
- {
- printf("%s\n",b[i]);
- }
- //排序
- qsort(b,3,sizeof(b[0]),compare);
-
- for(i=0;i<3;i++)
- {
- printf("%s\n",b[i]);
- }
- return 0;
- }
复制代码
本帖最后由 zhangjinxuan 于 2022-11-28 19:28 编辑
比较函数写的有点问题啊
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int compare(const void *e1,const void *e2)
- {
- return strcmp((char*)e1,(char*)e2); //应该要这么写
- }
- int main()
- {
- char a[3][18]={'\0'},b[3][18]={'\0'};
- int i,j,k;
- for(i=0;i<3;i++)
- {
- scanf("%s",a[i]);
- }
- for(j=0;j<3;j++)
- {
- for(i=6,k=0;i<14,k<8;i++,k++)
- {
- b[j][k]=a[j][i];
- }
- }
- for(i=0;i<3;i++)
- {
- printf("%s\n",b[i]);
- }
- qsort(b,3,sizeof(b[0]),compare);
- for(i=0;i<3;i++)
- {
- printf("%s\n",b[i]);
- }
- return 0;
- }
复制代码
|
|