为了账号安全,请及时绑定邮箱和手机立即绑定

这个程序问题出在哪

这个程序问题出在哪

C
我是好学生666 2017-04-18 18:11:27
#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就无法输出
查看完整描述

1 回答

?
frece

TA贡献36条经验 获得超15个赞

你的意思是如果你输入 0100 他只会输出100吗?

这样是正常的,因为 %d输出的是整形,会默认把前边的0去掉,如果你想输出带0的,两个方法,一个是用字符型数据接收,不过你这里因为还要做判断好像不太方便哈,

另一个就是用 %04d 这种形式输出,%04d输出十进制数值占地4位,不足位添0,不过这样做的缺点就是如果你输入的数小于1000的话他前边肯定会有0,如果你输入1,他会出0001,你输100他会出0100

不过话说回来,要整形为什么前边一定要加0呢

查看完整回答
反对 回复 2017-04-19
  • 1 回答
  • 0 关注
  • 1188 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信