C语言读整数程序怎么编啊

自己编了一段程序,编译没问题但是运行不出来,后来试着调试时,输入37,两位数字还是可以显示结果了,但多几位就不行了,有人可以帮我看看吗,我不知道哪里出问题了,感谢

#include

/*367
367/100->3
367%100->67
100/10->10
67/10->6
67%10->7
10/10->1
7/1->7
7%1->0
*/

int main()
{
    int x;
    scanf("%d",&x);
    int digit;
    int m=1;
    int t;
    
    do{
        m*=10;
        t=x/10;
    }while(t>9);
    
    if(x<0){
        printf("fu ");
        x=-x;
    }
    
    if(x<=100000){
    
    while(m>0){
        digit=x/m;
        switch(digit)
        {
            case 0:
                printf("ling");
                break;
            case 1:
                printf("yi");
                break;
            case 2:
                printf("er");
                break;
            case 3:
                printf("san");
                break;
            case 4:
                printf("si");
                break;
            case 5:
                printf("wu");
                break;
            case 6:
                printf("liu");
                break;
            case 7:
                printf("qi");
                break;
            case 8:
                printf("ba");
                break;
            case 9:
                printf("jiu");
                break;
            default:;
            
        }
        if(m>=10){
            printf(" ");
        }
        x%=m;
        m/=10;
    }
}
    return 0;
}

我把它放网站里运行,但是说运行时间过长,为什么会有这种问题啊

img

do while循环里的t值一直是不变的,检查一下逻辑是否正确