我不能在 if 语句中使用 char 名称

I can't use char names in if statements

#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)) ===||

有人知道发生了什么事吗?

你使用 m & M & f & F 的方式就像它们是可变的而不是字符 这就是你的意思

2-比较运算符是== not = only(这是赋值运算符)

if (sexo=='m'||sexo=='M'||sexo=='f'||sexo=='F')

替换此行

if (sexo=m||sexo=M||sexo=f||sexo=F)

来自

if (sexo=='m'||sexo=='M'||sexo=='f'||sexo=='F')

字符常量用单引号括起来。

首先,如果你想比较两个值,你必须使用==,而不是=。单个 equel (=) 用于初始化变量中的值。

其次,如果你想比较一个值和一个字符,你必须在它前后加上单引号,如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')