![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
scanf("格式控制",变量地址)用法?谢谢了,大神帮忙啊
main(){floata;scanf("%f",&a);printf("%f\",a);}3→3.0000001:scanf()格式控制用的“%f”读入一个浮点数,可是...
main() { float a; scanf("%f",&a); printf("%f\ ",a); } 3 → 3.000000 1:scanf()格式控制用的“%f”读入一个浮点数,可是为什么输入一个int数据(3)也可以??那格式控制起什么作用?定义的%f格式,可是输入int格式 2:把printf("%f",a)改为printf("%d",a)为什么输出错误?难道float型数据不能用%d格式输出? 3:scanf("%f",&a)改为scanf("%d",&a)也是输出错误?这又是为社么? scanf() printf() 函数中的格式控制到底是做什么用的啊???是不是定义什么格式就必须输入什么格式,什么类型的数据只能用这种类型输出?? 问题有点多哈,因为才学C语言1个星期,麻烦解释详细点,最好有举列?
展开
1个回答
展开全部
0.%指定变量的类型.不同类型的***内部***数据格式不同(你所关心的格式是***外部***的,给人用的,字符形式:人的输入,或者给人看的输出).输入语句里,机器需要知道内部类型才能把外部输入形式正确转换为变量的内部存储形式,比如同样正确的外部输入3,%d和%f就会生成不同的内部值:整型,浮点型;输出语句里,机器同样需要知道内部类型才能把内部值转换为指定的外部形式:比如浮点和整型的长度,每二进位的意义都不一样,%的两个作用之一就是让机器知道这个格式,另一个才是外部怎么表达(有没小数点,后面几位等). 1. 3既是整型常数,也是浮点常数 2. 外部形式浮点取整后可以表示为%d格式,但是关键是内部形式!!!程序传给printf()的是一个浮点数的几个字节(内部表达),如果告诉它是%d,按整数解释这个数就是错误的.你如果感兴趣可以去查浮点数里每位都是什么含义,整数又是什么含义. 3.scanf()根据%d指示将外部输入转换为内部一个整型表达,作为一个浮点的内部值保存(&a),内部格式肯定是错的.
记得采纳啊
记得采纳啊
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询