如果是语法,则出现错误?有人可以帮忙找到

时间:2016-12-12 19:13:42

标签: c if-statement compilation codeblocks

这不会编译,我收到错误:')之前的预期标识符'令牌信息。这是一个BMI计算器。不知道我的语法出错了。

int main()
{

    int wtlb, htin, bmi;

    printf("Enter your weight lbs: ");
    scanf("%d", &wtlb);

    printf("Enter your height inches: ");
    scanf("%d", &htin);

    bmi = 703 * wtlb / pow(htin, 2);

    if (bmi < 18.5)
    {

        printf("Your bmi is underweight");

    }
    else if (bmi > 18.5) && (bmi < 24.9);
    {

        printf("Your bmi is normal")

    }
    else if (bmi > 25.0) && (bmi < 29.99)
    {

        printf("Your bmi is overweight");

    }
    else (bmi > 30.0)
    {

        printf("Your bmi is obese");

    }

    return 0;
}

感谢您的时间。

1 个答案:

答案 0 :(得分:3)

问题在于:

                // here ------------v
else if (bmi > 18.5) && (bmi < 24.9);

你在行尾有一个迷路分号。删除它。

除此之外,您需要将整个表达式括在括号中以满足if条件:

else if ((bmi > 18.5) && (bmi < 24.9))

这里也是:

else if ((bmi > 25.0) && (bmi < 29.99))