杭电1106一直WA,一些细节均已注意到了啊,求教!

freedom098 2015-07-30 03:35:00
Problem Description
输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。

你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。




Input
输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000。

输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成。



Output
对于每个测试用例,输出分割得到的整数排序的结果,相邻的两个整数之间用一个空格分开,每组输出占一行。



Sample Input
0051231232050775



Sample Output
0 77 12312320



Source
POJ



Recommend
Eddy
测试了一些比较坑的数据也没问题,样例也过了,求大神指正!

#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
int i;
char numstr[1000+10];
int ans[1000+10];

while(~scanf("%s",&numstr))
{
int num = 0,j = 0;
int flag = 1;
for(i = 0;numstr[i]!='\0';i++)
{
if(numstr[i]!='5')
{
num = num*10+(numstr[i]-'0');
flag = 0;
}
else if(numstr[i] == '5'&&flag == 0)
{
ans[j++] = num;
num = 0;
flag = 1;
}
}
sort(ans,ans+j);
for(i = 0;i < j;i++)
{
if(i == j-1) printf("%d",ans[i]);
else printf("%d ",ans[i]);
}
printf("\n");
}
}
...全文
189 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
克莉丝汀娜 2015-09-10
  • 打赏
  • 举报
回复
测试一下下面两个数据: 00000 500

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧