Hdu Problem 1106--排序 http://acm.hdu.edu.cn/showproblem.php?pid=1106
***注意1:末尾有5时要特殊考虑
***注意2:有连续5时要考虑到;
**********************************************
#include<stdio.h>
#include<string.h>
int a[120]; //记录分离的数据;
char b[1000];//记录总数据;
void fun1();
void fun2();
void fun1(int *p,int m)
{
int i,j,k;
for(i=0;i<m;i++)
{
for(j=0;j<m;j++)
{
if(a[i]<a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
}
}
for(i=0;i<m;i++)
{
printf("%d",a[i]);
if(i!=m-1)
printf(" ");
}
printf("\n");
}
//split ()//分离函数;
void fun2(char *b)
{
unsigned int i,j=0;
int sum=0;
for(i=0;i<strlen(b);i++)
{
if(b[i]!='5')
{
sum=sum*10+(b[i]-'0');
}
else
{
if(b[i-1]!='5' && i!=0)
{
a[j]=sum;
j++;
sum=0;
}
}
}
if(b[i-1]=='5')
fun1(a,j);
else
{
a[j]=sum;
fun1(a,j+1);
}
}
int main()
{
while(gets(b)!=NULL)
{
fun2(b);
memset(a,0,sizeof(a));
}
return 0;
}