输入一行数字:123 423 5645 875 186523
在输入第二行:23
将第一行中含有第二行中“23”的数输出并排序
结果即:123 423 186523
/*
先排序,顺序遍历每个数字,看是否含有23
*/
#include<stdio.h>
#include<stdlib.h>
int cmp(const void *a,const void *b)
{
return *(int*)a-*(int*)b;
}
int main(int argc, char *argv[])
{
int a[1000];
int s[1000];
int m;
int i=0;
scanf("%d",&a[i]);
while(getchar()!='\n')
scanf("%d",&a[++i]);
i++;
int k=0;
scanf("%d",&m);
qsort(a,i,sizeof(int),cmp);
for(int j=0;j<i;++j)
{
int bk=a[j];
while(a[j]){
if(a[j]%100==m){
s[k++]=bk;
break;
}
else
a[j]/=10;
}
}
for(int j=0;j<k-1;++j)
printf("%d ",s[j]);
printf("%d\n",s[k-1]);
return 0;
}
测试数据:
123 423 5645 875 186523
23
测试结果: