这道用if语句写的c语言题错在哪里该怎么改

编写一个程序,输入某人的身高(cm)和体重(kg),按下式确定其体重是否为标准、过胖或过瘦。(1)标准体重=身高-110;(2)超过标准体重5kg(即大于5kg)为过胖;(3)低于标准体重5kg(即小于5kg)为过瘦。

#include <stdio.h>
int main()
{
int a,b;
printf("请输入身高和体重:");
scanf("%a %b",&a,&b);
if(b==a-110)
printf("标准体重");
else if(b-a+110>5)
printf("过胖");
else if(b-a+110<5)
printf("过瘦");
else
printf("其它");
return 0;
}

不管怎么输入什么身高体重最后都输出过胖,我感觉是我对a,b的定义和使用出了问题,if表达式没写错

1、scanf有错,格式控制应该是%d。

2、“过瘦”的条件判断,else if(a-110-b>5)

修改后如下:

#include <stdio.h>
int main()
{
    int a,b;
    printf("请输入身高:");
    scanf("%d",&a);
    printf("请输入体重:");
    scanf("%d",&b);
    if(b==a-110)
        printf("标准体重");
    else if(b-a+110>5)
        printf("过胖");
    else if(a-110-b>5)
        printf("过瘦");
    else
        printf("其它");
    return 0;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-11-17
你scanf("%a %b")是什么鬼,改成scanf("%d %d",&a,&b);追问

。。刚发现,可是改了还是一样的情况,是不是我题做错了

追答

没啊,我输入结果是都可以的啊

相似回答