[C语言]请问如何优化下列代码?

如下列代码,我想做出最后一起输出“num是_位数”,并且当输入的数字超过五位数时返回“输入错误!请输入0-10000的数字\n”而不输出其他结果的效果,请问我应该怎样优化/修改?

#include<stdio.h> 
//输入一个不多于5位的正整数
//要求:
//(1)输出它是几位数
//(2)分别输出每一位数字
//(3)按逆序输出各位数字,如原数为321,则应输出123
// (4)不能输入负数且输入的数不超过5位
int main()
{
    long num, numt;
    int a = 0;
    scanf("%d", &num);
    //判断是几位数
    if (num >= 10000 && num < 100000)
        printf("num是一个五位数");
    else if (num >= 1000&&num< 10000)
        printf("num是一个四位数");
    else if (num >= 100&&num<1000)
        printf("num是一个三位数");
    else if (num >= 10&&num<100)
        printf("num是一个二位数");
    else if (num >= 0&&num<10)
        printf("num是一个一位数");
    else
        printf("输入错误!请输入0-10000的数字\n");
    numt = num;
    //倒序计算
    while (num)
    {
        a = a * 10 + num % 10;
        num = num / 10;
    }
    printf("\nnum中的数字分别是:%d,倒序是:%d", numt,a);
    return 0;
}

```


#include <stdio.h>

int main()
{
    int num, numt;
    int digits[5], i = 0;

    printf("请输入一个0-10000之间的正整数:");
    scanf("%d", &num);

    if (num < 0 || num > 10000) {
        printf("输入错误!请输入0-10000的数字\n");
        return 0;
    }

    // 计算数字位数
    if (num >= 10000)
        printf("num是一个五位数");
    else if (num >= 1000)
        printf("num是一个四位数");
    else if (num >= 100)
        printf("num是一个三位数");
    else if (num >= 10)
        printf("num是一个二位数");
    else
        printf("num是一个一位数");

    // 分别输出每一位数字
    numt = num;
    while (numt) {
        digits[i++] = numt % 10;
        numt /= 10;
    }
    printf("\nnum中的数字分别是:");
    for (int j = i - 1; j >= 0; j--) {
        printf("%d ", digits[j]);
    }

    // 按逆序输出各位数字
    printf("\n按逆序输出各位数字:");
for (int j = 0; j < i; j++) {
    printf("%d", digits[j]);
}


    return 0;
}

img

啥意思?可以将判断num是几位数的处理封装到函数里

#include <stdio.h>
int fun(int n)
{
    int num = 0;
    do
    {
        num++;
        n=n/10;
    }while(n != 0);      
}
int main()
{
    int num;
    scanf("%d",&num);
    if(num>=100000)
          printf("输入错误!请输入0-10000的数字\n");
    else
          printf("num是%d位数",fun(num));
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^