在C语言中定义整型输入整数前有0,怎样使输出结果前的0不去掉

作者:佚名    更新日期:2025-06-09
一般情况你是做不到的,因为数据前面有0没0是输入输出的问题,不是数据存储的问题,在程序运行过程中,变量中的数据是不带前面的0的。
解决办法
一、输入宽度与输出所定义的宽度相同
printf("%05d" , x ) ; //输出前面补0,不管你输入的数据前面有没有0
二、按字符串输入数据,而不是按整型数据来输入
char x[100];
scanf("%s" , x );

printf("%s" , x ); //输入是什么,输出就是什么
运算时,再将x转换成相应的整数,采用atoi(x) ;

1、使用printf函数的格式化输出即可实现在数字前补0。

2、例如:
printf("a=%06d\n", a);
//输出6位十进制整数 左边补0,显示 a=001234;
这里%06d的0就是指在前面补0占位,6代表位宽。一般这两个要一起用。

只能用字符数组记录输入输出。

c语言中定义了整型数据但是输出的时候我把它调为浮点型,运行输出了不是想要的结果~

printf("b=%f,a=%d
", (float)b, (int)a); 原因很简单,格式串中的 %f 要求对应的参数必须是浮点型,否则输出就不正确。
你已经看到了,输出是 b=0.000000,不正确吧?

整型数据调为浮点型必须使用 (float)b,而不是改一下格式串为 %f 就能做到的。

#includeint com(){int a[30],i=0,b,sum=0,j,k,l=0;scanf("%d",&b);while(b){a[i]=b;i++;scanf("%d",&b);}for(j=0;j<i;j++){l=0;for(k=0;k<i;k++){if(a[j]==a[k]&&j!=k)break;else{l++;}}if(l==i){printf("%-4d",a[j]);sum++;}}return sum;}int main(){int a;a=com();printf("
只出现一次的个数是:%d
",a);}