一道关于整数的c语言题

编写程序,从键盘输入一个整数,计算并输出它是几位数。若输入的是负数时,要求重新输入。


#include<stdio.h>
/*
编写程序,从键盘输入一个整数,计算并输出它是几位数。
若输入的是负数时,要求重新输入。
*/
int main() {
    int num;
    int res = 0;
    scanf("%d",&num);
    while(num<0)
    {
        printf("重新输入:");
        scanf("%d", &num);
    }
    while (num != 0) {
        num = num / 10;
        res++;
    }
    printf("位数是%d:",res);
    return 0;
}
#include<stdio.h>
int main(){
    int num,i=0;
    printf("please input a numble:");
    while(1){
        scanf("%d",&num);
        if(num<0){
            printf("this numble is below to 0,please input again:");
            continue;
        }
        while(num>0){
            num/=10;
            i++;
        }
        break;
    }
    printf("It's width is %d",i);
}

int n;
while(scanf("%d", &n) && n < 0)
printf("重新输入。");
int count = 0;
while(n)
{
n /= 10;
count++;
}
printf("%d位数。", count);

#include <stdio.h>
#include <math.h>
int main()
{
    int n;
    while (1)
    {
        scanf("%d", &n);
        if (n < 0)
        {
            printf("请重新输入:\n");
        }
        else if (n == 0)
        {
            printf("1位数\n");
            break;
        }
        else
        {
            int cnt = 0;
            while (n > 0)
            {
                cnt++;
                n /= 10;
            }
            printf("%d位数", cnt);
            break;
        }
    }
    return 0;
}