水题一道。。。注意细节。。。
/*
* hdu-1106
* mike-w
* 2011-11-10
*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define SIZE 2000
char buf[SIZE];
__int64 f[SIZE];
int comp(const void* e1,const void *e2)
{
return *((__int64*)e1) - *((__int64*)e2);
}
int main(void)
{
int cnt,i;
__int64 tmp=0;
#ifndef ONLINE_JUDGE
freopen("in","r",stdin);
#endif
while(scanf("%s",buf+1)!=EOF)
{
cnt=0;
tmp=0;
buf[0]='5';
for(i=1;buf[i];i++)
{
if(buf[i]=='5')
{
if(buf[i-1]!='5')
f[cnt++]=tmp,tmp=0;
}
else
tmp=tmp*10+buf[i]-'0';
}
if(buf[i-1]!='5') f[cnt++]=tmp;
qsort(f,cnt,sizeof(__int64),comp);
for(i=0;i<cnt;i++)
printf("%I64d%c",f[i],(i==cnt-1?'\n':' '));
}
return 0;
}
本文提供了一道来自HDU在线评测系统的题目解答思路与代码实现。该题要求从输入字符串中提取所有非五号字体部分的数字,并按升序输出这些数字。文章包括完整的C语言代码实现,利用了qsort进行排序。

被折叠的 条评论
为什么被折叠?



