coura 发表于 2021-10-7 12:39:40

课后作业身高体重转换

#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:38:55

本帖最后由 yangyiheng 于 2021-10-7 13:42 编辑

2.f中的2应该是控制float小数点后面的位数,在scanf中不需要

coura 发表于 2021-10-7 14:53:11

yangyiheng 发表于 2021-10-7 13:38
2.f中的2应该是控制float小数点后面的位数,在scanf中不需要

嗯,我知道了,scanf函数中只能控制数据的宽度,而不能控制数据的精确度,例如scanf("%6.2f", &i)是错误的,但是scanf("%6f", &i)是正确的。再比如我输入1234567,但它接受到的只会是123456。

谢谢你的解惑。{:10_257:}
页: [1]
查看完整版本: 课后作业身高体重转换