输入一行数字:123 423 5645 875 186523
在输入第二行:23
将第一行中含有第二行中“23”的数输出并排序
在输入第二行:23
将第一行中含有第二行中“23”的数输出并排序
结果即:123 423 186523
#include <stdio.h>
#include <stdlib.h>
int compare(const void *p,const void *q){
return *(int *)p-*(int *)q;
}
int main()
{
int n,m,i=0,k=0;
int sort[100],a[100];
scanf("%d",&n);
while(getchar()!='\n')
{
a[i++]=n;
scanf("%d",&n);
}
a[i++]=n;
scanf("%d",&m);//输入23
for(int j=0;j<i;j++)
{
int temp = a[j];
while(temp>0)
{
if(temp%100==m)
{
sort[k++]=a[j];
break;
}
else
temp=temp/10;
}
}
qsort(sort,k,sizeof(int),compare);
for(j=0;j<k;j++)
printf("%d ",sort[j]);
printf("\n");
return 0;
}
测试结果,可能想的不周全,欢迎查漏补缺: