C语言输入使用double型时,输出总是出错?

即使把%f换成%1f也是一样的问题,但是输入为float型是只需要改一下%f中间数字就可以正常运行,求解答

C语言中scanf输入一般是不控制精度的,只有printf输出才会控制精度
一般输入输出的占位符浮点型(float)用“%f”,双精度型(double)用“%lf”
!注意double的“%lf”中的“l”是字母“L”的小写,不是数字“1”!
“%1f”“%2f”“%.2f”之类的在输入中是不规范的语法,一般只在输出中使用,表示取几位有效数字
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-07-13
%1f,是指那个浮点数只有一位整数,而%2f,是指那个浮点数有两位整数,而楼主要输入的就是两位整数,所以肯定要至少f前面的数字是2
第2个回答  2020-07-13
scanf("%1f", &a);表示直接收1位输入 20转换后就只有0了
如果像接受double 请使用scanf("%lf", &a);
第3个回答  2020-07-13
什么意思?double类型应该是%lf(long float)吧!截图我看看不清
相似回答