C语言问题!!!!!!送分!!!!送分在线!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

来源:百度知道 编辑:UC知道 时间:2024/06/08 07:01:42
#include "stdio.h"
void main()
{
float a;
scanf("%3.1f",&a);
printf("%f",a);

}
问题1已经通过编译可是当输入1.111时打印出来的是0.000000

问题2
我想知道scanf里的%3.1f的意思是不是小数只取输入时的1位(四舍五入?),共占3位(小数点占1位)?

你无论输入什么,输出的都是0.0000吧
因为scanf()中,3.1f是没有意义的,
%3f表示取3位.%3.1f什么意思呢?
(取3位.小数点后保留一位?那么这个是在输出函数中控制的,)
%3.1f是输出时候的格式
输入的时候只要%3f就可以了.
#include "stdio.h"
void main()
{
float a;
scanf("%3f",&a); 输入的数从左起取3位有效数字
printf("%.1f",a); 输出小数点后保留一位
}
这样就符合你的意思了

是的

%3.1f的意思是小数只取输入时的1位
不过不是四舍五入
是后面的全切了

scanf("%f",&a);
// 四舍五入
printf("%.1f",a+0.5);

第一次见过这么新奇的人,我真服了。我回答你不是那样的,scanf里没这么输入。应当是printf("%3.1f",a);

scanf()输入控制和printf的输出控制不同