2014华为机试题16:将第一行中含有第二行中“23”的数输出并排序

来源:互联网 发布:尤里过知乎 编辑:程序博客网 时间:2024/05/18 17:57

描述:

输入一行数字:123 423 5645 875 186523
在输入第二行:23

将第一行中含有第二行中“23”的数输出并排序
结果即:123 423 186523

#include "stdio.h"

void bubble(int a[],int n)
{
int i,j,temp;
for(i=0;i<n-1;i++)
for(j=i;j<n-i-1;j++)
{
if(a[j]>a[j+1])
{
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
}


int main()
{
int  a[100],m,s2[100];
char c=' ';
int i,t,temp,j=0;

for(i=0;c!='\n';i++)
{
scanf("%d%c",&a[i],&c);
}
t=i;
scanf("%d",&m);


//找出含有第二行的数,并保存在sort数组中
for(i=0;i<t;i++)
{
temp=a[i];
while(temp>0)
{
if(temp%100==m||temp%1000==m||temp%10000==m)//只考虑第2行输入的是4位以内的数字,查看后四位有没有一样的,如果没有去掉最后一位
{
s2[j]=a[i];
j++;
break;
}
else
temp/=10;
}
}


bubble(s2,j);//按升序排列这几个数
for(i=0;i<j;i++)
printf("%d ",s2[i]);


return 0;
}

0 0