Без изменения условия в операторе if мне нужно распечатать инструкцию else, задав значение i? - PullRequest
0 голосов
/ 31 мая 2018
#include <stdio.h>

int main() {
    int i =-1;
    if(1< i <10){
        printf("1");
    } else {
        printf("2");
    }
}
expected output: 2
present output: 1

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

В логическом выражении 1 < i < 10 вычисляется слева направо, а 1 < i имеет значение true (1) или false (0);поэтому в последующем сравнении значения 0 < 10 и 1 < 10 всегда имеют значение true, независимо от значения i.

Поэтому невозможно получить выходные данные 2 без изменений (возможно, с исправлением?) состояние.

0 голосов
/ 31 мая 2018

Замените на следующее:

if ((i > 1) && (i < 10)) {

Затем вы можете активировать блок else, задав i значение, строго содержащее (пожалуйста, предложите более подходящее слово) от 1 до 10.

Из-за приоритета операторов невозможно достичь этого без изменения условия.(В каждом случае все условие сводится к истинному.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...