课后作业身高体重转换
#include <stdio.h>int main()
{
char a;
float b, c;
printf("请输入您的姓名:");
scanf("%s", &a);
printf("请输入您的身高(cm): ");
scanf("%.2f",&b);
printf("请输入您的体重(kg):");
scanf("%.2f",&c);
printf("==========正在为您转换==========\n");
float height=b/2.54;
float weight=c/0.453;
printf("%s的身高是%.2f(in),体重是%.2f(1b)。\n",a,height,weight);
return 0;
}
这样的代码是错误的,但是改一下,去掉.2就正常了,为什么不能%.2f呀??{:5_100:} 本帖最后由 yangyiheng 于 2021-10-7 13:42 编辑
2.f中的2应该是控制float小数点后面的位数,在scanf中不需要 yangyiheng 发表于 2021-10-7 13:38
2.f中的2应该是控制float小数点后面的位数,在scanf中不需要
嗯,我知道了,scanf函数中只能控制数据的宽度,而不能控制数据的精确度,例如scanf("%6.2f", &i)是错误的,但是scanf("%6f", &i)是正确的。再比如我输入1234567,但它接受到的只会是123456。
谢谢你的解惑。{:10_257:}
页:
[1]