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) 编辑 收藏 举报