hdu 1106 排序

点击打开链接

#include"stdio.h"
#include"string.h"
#include"stdlib.h"
int cmp(const void*a,const void*b)
{
	return *(int*)a-*(int*)b;
}
int main()
{
	char str[10002];
	char p[10002];
	int num[10001],i,j,k,l;
	while(scanf("%s",str)!=EOF)
	{
		j=k=0;
		l=strlen(str);
		str[l]='5';
		str[++l]='\0';
		for(i=0;i<l;i++)
		{
			if(str[i]!='5')
				p[j++]=str[i];
			else if(i>0&&str[i-1]!='5') // 对于是5的位置还需要检查前一个字符是不是5,如果前一个字符已经是5,则表明这是多余的5。
			{
				p[j]='\0';
				num[k++]=atoi(p);
				j=0;
			}
		}
		qsort(num,k,sizeof(int),cmp);
		for(i=0;i<k-1;i++)
			printf("%d ",num[i]);
		printf("%d\n",num[i]);
	}
	return 0;
}


posted on 2012-08-03 17:17  Slege  阅读(94)  评论(0编辑  收藏  举报

导航