您的位置:首页 > 其它

hdu 1106 排序

2011-04-10 00:00 363 查看
#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。。。。审题。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: