萌新求助!关于作业的问题
#include <stdio.h>int main()
{
char name;
float H, W, I,L;
printf("请输入你的姓名:");
scanf("%s", name);
printf("请输入你的身高(cm):");
scanf("%.2f", &H); //将%.2f换为%f就不会出错
printf("请输入你的体重(kg):");
scanf("%.2f", &W);
I = (H - 32) * 5 / 9;
printf("%s的身高为:%.2f(in)\n",name, I);
L = (W - 32) * 5 / 9;
printf("%s的体重为:%.2f(lb)\n",name, L);
return 0;
}
想请教一下
这里第十二行为什么不能用%.2f
如果用%.2f他就出现输入完身高直接跳过体重的输入环节的情况
求助 谢谢{:10_299:} 找到了原因
说是scanf不能控制精度
所以不能用%.2f
但是只改第12行 第15行不改为什么就可以呢?{:10_266:} Sxx_27 发表于 2021-10-9 09:55
找到了原因
说是scanf不能控制精度
所以不能用%.2f
正常来说是应该报错的,可能是编译器的问题,scanf函数只能控制长度不能控制精度,想保留小数点后两位加上小数点前的三位可以用scanf("%6f", &H); 明白了 明白了 谢谢咯
页:
[1]