应该是6位
但是:
设有定义:
int a; float b;
执行
scanf("%2d%f", &a, &b);
语句时,若从键盘输入
876 543.0<回车>
则a和b的值分别是
( )。
A)87和6.0
B)876和543.0
C)87和543.0
D)76和543.0
选A
为什么只有一位了?
C语言float几位小数
答案:3 悬赏:60 手机版
解决时间 2021-12-20 11:17
- 提问者网友:酱爆肉
- 2021-12-20 04:54
最佳答案
- 五星知识达人网友:第幾種人
- 2021-12-20 05:48
%2d 表示读整数取2位,%f表示读取1个float数
876 543.0
先%2d, 读取了87 内存中还有 6 543.0 再%f 就读了6,但是是float 所以自动类形转换变6.0
因为6后边是空格,空格是输入时默认的分隔符,所以空格后就是另外的数字了,要是再多加个%f
就是543.0了
876 543.0
先%2d, 读取了87 内存中还有 6 543.0 再%f 就读了6,但是是float 所以自动类形转换变6.0
因为6后边是空格,空格是输入时默认的分隔符,所以空格后就是另外的数字了,要是再多加个%f
就是543.0了
全部回答
- 1楼网友:鸽屿
- 2021-12-20 07:53
loat为单精度,占4字节(32位)的内存空间,它的数值有效范围是-10的38次方到10的38次方,只表示7位有效数字。而double为双精度,8字节,正负10的308次方之间,能精确到16位。这应该就是他们的的最基本的区别吧。。。
- 2楼网友:毛毛
- 2021-12-20 06:45
输入有格式限制.
依照使用的"%2d%f",
87被%2d, 接收,
"6 "被当成一个数字, 被%f接收; " "被视作间格或结束.
输出的话, 就没有一定, 并没有举出输出的条件.
我假定该问题, 只是要问, 心中的答案.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯