我编写了以下程序来根据高度和性别检查男性和女性的理想体重:
#include<stdio.h>
#include<conio.h>
int main()
{
int age;
float height, mminima = 48, fminima = 45, iw;
char gender;
printf("Please Enter your Age,Height(in CM) and Gender\n");
scanf("%d\n%f\n%c", &age, &height, &gender);
if((gender = 'M') && (height < 152.4))
{
iw = mminima - (152.4 - height) * 1.1;
printf("\nYour idle Weight should be= %f", iw);
}
else
{
iw = mminima + (height - 152.4) * 1.1;
printf("\nYour Idle Wight should be= %f", iw);
}
if((gender = 'F') && (height < 152.4))
{
iw = fminima - (152.4 - height) * 1.1;
printf("\nYour Idle weight should be= %f", iw);
}
else
{
iw = fminima + (height - 152.4) * 1.1;
printf("\nYour Idle weight should be= %f", iw);
}
getch();
return 0;
}
但是输出总是显示我对男性和女性的理想体重,如果声明没有比较性别的话。为什么?我哪里错了?请帮忙!!
您的 if 语句 if((gender='M')&&(height<152.4))
要求两个条件都为真...那么您的 else
部分将不分性别进行。
如果高度在 152.4 以上都是 else
无论性别如何,报表都会运行
你应该把这两个条件分开:
if(gender=='M')
{
if (height<152.4)
{
}
else
{
}
}
if(gender=='F')
{
if (height<152.4)
{
}
else
{
}
}
如前所述,您应该更改 gender='F'
至 gender=='F'
我是一名优秀的程序员,十分优秀!