#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呢
- 1 回答
- 0 关注
- 1188 浏览
添加回答
举报
0/150
提交
取消