#include<stdio.h>
#include<conio.h>
void main()
{
char sexo;
float alt,peso;
printf("Qual o seu sexo? (M/F)");
sexo=getch();
printf("Insira a sua altura: ");
scanf("&f", &alt);
if (sexo=m||sexo=M||sexo=f||sexo=F)
{
if (sexo=m||sexo=M)
peso=(72.7*alt)-58;
else
peso=(62.1*alt)-44.7;
printf("O peso recomendado para o seu sexo e %.2fKg",peso);
}
else
printf("Sexo invalido");
}
一旦我尝试编译它,我就会在第11行收到错误消息:
error: 'm' undeclared (first use in this function)
error: 'M' undeclared (first use in this function)
error: 'f' undeclared (first use in this function)
error: 'F' undeclared (first use in this function)
||=== Build failed: 4 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===||
有人知道发生了什么事吗?
答案 0 :(得分:2)
您使用m&M&f&F的方式就像它们是可变的而不是字符 这就是你想要做的
2-比较运算符= =不=唯一(这是赋值运算符)
if (sexo=='m'||sexo=='M'||sexo=='f'||sexo=='F')
答案 1 :(得分:1)
替换此行
if (sexo=m||sexo=M||sexo=f||sexo=F)
作者
if (sexo=='m'||sexo=='M'||sexo=='f'||sexo=='F')
字符常量用单引号引起来。
答案 2 :(得分:0)
首先,如果要比较两个值而不是==
,则必须使用=
。单个等号(=
)用于初始化变量中的值。
其次,如果您想将值与字符进行比较,则必须在其前后加上单引号,例如sexo == 'A'
。不带引号进行比较,例如sexo == A
表示您将其与变量A的值而不是A的值进行比较。因此,您需要通过以下方式更改代码:
更改:
if (sexo=m||sexo=M||sexo=f||sexo=F)
收件人:
if (sexo=='m'||sexo=='M'||sexo=='f'||sexo=='F')
然后更改:
if (sexo=m||sexo=M)
收件人:
if (sexo=='m'||sexo=='M')