输出为0.000 为什么输出结果是这样的?它的原理是什么?为什么浮点数不能存储? 请大家帮我解答一下我的问题,谢谢
#include <stdio.h>
int main(){
float a;
scanf("%.3f", &a);
printf("%.f", a);
return 0;
}
%.3f
不是 scanf
的有效转换说明符,因为 .3
用于指定输出精度,而不是输入精度。您可以使用%f
。
使用无效的转换说明符,该行为不是由 C 标准定义的。您的
scanf
实现可能会检查字符串,找不到任何要执行的正确转换,然后返回而不读取任何输入,可能会出现错误返回代码 (EOF
)。因此,没有为 a
分配任何值。