晚星klm 发表于 前天 00:15

问题出在哪里

#include <stdio.h>
int main()
{
        double height;
        double weight;
        printf("请输入您的身高和体重,如/180 130/表示180cm,130斤\n");
        scanf_s("%lf,%lf", &height, &weight);
        double bmi;
        bmi= weight / (height / 100 )* (height / 100);
        printf("您的bmi是%f",bmi);

        return 0;
}
您的bmi是-92559631349317830736831783200707727132248687965119994463780864.000000

FishC 发表于 前天 00:16

您的代码有几个问题需要修正:

1. 头文件缺少尖括号
2. 输入格式与提示信息不匹配
3. BMI计算公式错误
4. 单位转换问题

修正后的代码:


#include <stdio.h>
int main()
{
    double height;
    double weight;
    printf("请输入您的身高(cm)和体重(kg),如:180 75\n");
    scanf("%lf %lf", &height, &weight);
   
    double bmi;
    bmi = weight / ((height / 100) * (height / 100));
    printf("您的bmi是%.2f", bmi);

    return 0;
}


主要修改说明:


[*]头文件改为 #include <stdio.h>
[*]修改输入提示,明确要求输入身高(cm)和体重(kg)
[*]将 scanf_s 改为标准 scanf,使用空格分隔输入
[*]修正BMI计算公式,正确的公式是:体重(kg) ÷ 身高(m)的平方
[*]输出格式改为 %.2f 保留两位小数


使用示例:
输入:180 75
输出:您的bmi是23.15

注意:如果您的体重单位是斤而不是公斤,需要先将斤转换为公斤(除以2)再计算。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

小甲鱼的二师兄 发表于 前天 04:34

本帖最后由 小甲鱼的二师兄 于 2025-10-6 04:35 编辑

参照一下正确代码:

#include <stdio.h>

int main()
{
    double height;
    double weight;
    printf("请输入您的身高(cm)和体重(kg),如:180 75\n");
    scanf("%lf %lf", &height, &weight);
   
    double bmi;
    bmi = weight / ((height / 100) * (height / 100));
    printf("您的bmi是%.2f", bmi);

    return 0;
}
问题出在接受输入的时候多了一个逗号:"%lf,%lf"

应该是:"%lf %lf"

晚星klm 发表于 前天 11:49

小甲鱼的二师兄 发表于 2025-10-6 04:34
参照一下正确代码:




谢谢!
页: [1]
查看完整版本: 问题出在哪里