做分割序列时有一个输出与结果不同

这是题目:输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。
你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。

我的答案 :77 12312320 419560800
正确答案: 0 77 12312320


```c#include<stdio.h>
#include<string.h>
void main()
{
    char ch[1000];
    int i,j,k = 0,ret,sum,len,word,temp;
    int num[3];
    gets(ch);
    getchar();
    len = strlen(ch);
    for(i = 0;i < len;i++)
    {
        if(ch[i]=='5')
        ch[i] = ' ';
    }
    for(i = 0;i < len;i++)
    {
        word =1;
        if(ch[i]==' '&&word == 1)
        word =0;
        if(word == 1)
        {
            sum = sum*10 + (ch[i] - '0');
        }
        if(word==0)
        {
            num[k]=sum;
            sum = 0;
            k++;
        }
    
    }
    for(i = 0;i < 2;i++)
    {
        for(j = 0;j < 2;j++ )
        {
            if(num[j] > num[j+1])
            {
                temp = num[j];
                num[j] = num[j+1];
                num[j+1] = temp;
            }
        }
    }
    for(i = 0;i < 3;i++)
    printf("%d ",num[i]);
    putchar('\n');
}