首页 > 代码库 > 华为机试—输出含“23”的数

华为机试—输出含“23”的数

输入一行数字:123 423 5645 875 186523
在输入第二行: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;
}


测试结果,可能想的不周全,欢迎查漏补缺:

技术分享

华为机试—输出含“23”的数