@aekari

Почему заведомо неверно if?

Помогите пожалуйста, где накосячил
int number, wrong;
printf("Введите номер (1-5):\n");
scanf("%d", &number);
#if (number>1)&&(number<5)
printf("Вы ввели правильное число");
#else
printf("Вы ввели неправильное число");
#endif

printf("\n%d", wrong);
return 0;
  • Вопрос задан
  • 168 просмотров
Решения вопроса 2
@dima20155
you don't choose c++. It chooses you
Потому что символы # перед if else не нужны. При такой записи эти инструкции будут рассматриваться как директивы препроцессора, которые тебе здесь не нужны. В вашем коде происходит проверка дефайнов (#define) предпроцессора. Поскольку вы не объявили что-то вроде:
#define number 2
то препроцессор отдает на компиляцию следующий код:
int number, wrong;
printf("Введите номер (1-5):\n");
scanf("%d", &number);
printf("Вы ввели неправильное число");
printf("\n%d", wrong);
return 0;


То есть в момент исполнения программы просто нет никакого if. В общем, подтяните знание языка
Вам нужно что-то такое:

int main() {
    int number, wrong;
    printf("Введите номер (1-5):\n");
    scanf("%d", &number);
    if (number>1 && number<5) {
        printf("Вы ввели правильное число: %d", number);
    } else {
        printf("Вы ввели неправильное число: %d", number);
    }
    return 0;
}
Ответ написан
@kaka888
C, C++, Qt, Python Flask, MySQL, Lua
Ой хоспаде, что это такое :DD
"#команда" - это команда (директива) препроцессора, и это совсем не та часть языка C++, которая помогла бы тебе сделать то, что ты пытаешься сделать.

Правильно было бы вот так:
if ((number > 1) && (number < 5))
{
    printf("Вы ввели правильное число");
}
else
{
    printf("Вы ввели неправильное число");
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы