作业帮 > 综合 > 作业

杭电ACM 1106排序

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/22 04:26:38
杭电ACM 1106排序
输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0).
你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出.
Input输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000.
输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成.
Output对于每个测试用例,输出分割得到的整数排序的结果,相邻的两个整数之间用一个空格分开,每组输出占一行.
Sample Input0051231232050775
Sample Output0 77 12312320
#include
#include
#include
#include
int temp(const void *x,const void *y)
{
return (*(int*)x-*(int*)y);
}
int jisuan(int c[11],int mm)
{
int i,j,k;
int sum;
i=1;
while (c[i]==0 && imm) return 0; else
{
k=1;
sum=0;
for (j=mm; j>=i; j--)
{
sum=sum+c[j]*k;
k=k*10;
}
return sum;
}
}
int main()
{
char s[1001];
int i,m,j,k;
int l;
int a[11];
int b[11];
while(scanf("%s",s)!=EOF)
{
l=strlen(s);
i=0;
m=0;
l=l-1;
while (i
你这程序,如果遇上负号就乱了!‘
增加上对负数的处理吧
再问: 题目说没负数的啊
再答: 除去程序写的复杂了一点,我测试也没有发现什么其他问题,说不清了
再问: 我没用什么函数。。。
再答: 你要操作数组时,都没有从第0位开始使用数组,建议你改一下,不知道是不是跟这有关系
再问: 是从0开始的啊
再答: i=1; while (c[i]==0 && i