hdu 1106 排序

#include<stdio.h>
#include
<string.h>
#include
<stdlib.h>
int cmp(const void *a,const void *b)
{
return *(long *)a > *(long *)b ? 1: -1;
}
int main( )
{
char ch[1005];
while(scanf("%s",ch)!=EOF)
{
char *p,*q,ch1[1005];
int len,i=0,k=0,m=0,flag=0;
long A[1001];
len
=strlen(ch);
memset(A,
0,sizeof(A));
p
=ch;
q
=ch+len;
while(*p=='0')
{
p
++;
if(*p=='5')
{
A[
0]=0;
flag
=1;

}
}
m
=0;
if(flag)
k
=1;
else
k
=0;

while( p<q )
{

i
=0;
int flag2=0;
while(*p!='5')
{
ch1[i
++]=*p;
p
++;
flag2
=1;
}
if(flag2==1)
{
ch1[i]
='\0';
A[k
++]=atol(ch1);

}

while(*p=='5')
{
p
++;
while(*p=='0')
{

p
++;
if(*p=='5')
A[k
++]=0;

}

}
}
qsort(A,k,
sizeof(A[0]),cmp);
for(i=0;i<k;i++)
printf(i
==k-1?"%ld\n":"%ld ",A[i]);

}
//system("pause");
return 0;
}



这道题目,由于没有看清题意,“可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。
”,就因为这句话浪费了我一个小时,一直wrong answer。。。。审题。。

posted on 2011-04-10 00:00  more think, more gains  阅读(285)  评论(0编辑  收藏  举报

导航