OJ 系列之查找与排序

// FindAndSort.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
/*
输入一行数字:123 423 5645 875 186523  
在输入第二行:23  将第一行中含有第二行中“23”的数输出并排序 
结果即:123 423 186523 
*/

/*
* Function: FindAndSort
* Usage: void FindAndSort(pInput,len,num)
* -----------------------------------------------------
*/
void FindAndSort(long pInput[],int len,int num)
{
	int i,j=0;
	int temp = 0;
	long pOutput[1024];
	int pOutputLen = 0;

	for (i=0;i<len;i++)
	{
		temp = pInput[i];

		while(temp)
		{
			if (temp %100 == num) /*找到*/
			{
				pOutput[pOutputLen] = pInput[i];
				pOutputLen ++;
				break;
			}
			else
			{
				temp = temp/10;/*除以10继续找*/
			}
		}
	}

	int min = 0;
	
	for (i=0;i<pOutputLen;i++)  /*冒泡*/
	{
	
		for (j=i+1;j<pOutputLen;j++)
		{
			if (pOutput[j]<=pOutput[i])
			{
				temp = pOutput[i];
	  			pOutput[i] = pOutput[j];
				pOutput[j] = temp;
			}
		}
		
	}

	for (i=0;i<pOutputLen;i++)  /*输出*/
	{
		printf("%d ",pOutput[i]);
	}
	
}
int _tmain(int argc, _TCHAR* argv[])
{
	char c = 'a';
	long pInput[1024];
	int temp;
	int len=0;
	while (c!='\n')
	{
		scanf("%d%c",&temp,&c);
		pInput[len] = temp;
		len ++;
	}
	scanf("%d",&temp);
	FindAndSort(pInput,len,temp);
	getchar();
	getchar();
	return 0;
}

你可能感兴趣的:(C++,华为机试)