这个程序问题出在哪

#include<stdio.h>
int main()
{
    char c=',';
    int n,i=0,j=0,a[100];
    scanf("%d",&n);
    if(n<1000)
    printf("%d",n);
    else
    {
        for(i=0;n>=1000;i++)
        {
            a[i]=n%1000;
            n/=1000;
            j=i+1;
        }
        a[j]=n;
        for(i=j;i>0;i--)
        {
            printf("%d%c",a[i],c);
        }
        printf("%d",a[0]);
    }
}


分隔符后面第一个数字如果是0,这个0就无法输出


我是好学生666
浏览 1189回答 1
1回答

frece

你的意思是如果你输入 0100 他只会输出100吗?这样是正常的,因为 %d输出的是整形,会默认把前边的0去掉,如果你想输出带0的,两个方法,一个是用字符型数据接收,不过你这里因为还要做判断好像不太方便哈,另一个就是用 %04d 这种形式输出,%04d输出十进制数值占地4位,不足位添0,不过这样做的缺点就是如果你输入的数小于1000的话他前边肯定会有0,如果你输入1,他会出0001,你输100他会出0100不过话说回来,要整形为什么前边一定要加0呢
打开App,查看更多内容
随时随地看视频慕课网APP