Я не могу использовать имена символов в операторах if - PullRequest
0 голосов
/ 28 февраля 2019
#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)) ===||

Кто-нибудь знает, что происходит?

Ответы [ 3 ]

0 голосов
/ 28 февраля 2019

Заменить эту строку

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

на

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

Символьные константы заключены в одинарные кавычки.

0 голосов
/ 28 февраля 2019

Во-первых , вы должны использовать ==, если хотите сравнить два значения, а не =.Одиночный знак равенства (=) используется для начального значения в переменной.

Во-вторых . Если вы хотите сравнить значение с символом, вы должны поставить одинарную кавычку до и после него, например 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')
0 голосов
/ 28 февраля 2019

то, как вы использовали m & M & f & F, похоже, что они переменные, а не символы. Это то, что вы хотели сделать

2 - оператор сравнения == не = только (что является назначениемоператор)

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