Пояснение к программе - PullRequest
       3

Пояснение к программе

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

Это мои экзамены на следующей неделе, и нам дали банк вопросов, из которых мы должны предоставить правильные решения с объяснениями данного кода.Я не могу понять этот код.Прикрепление кода.

    #include <stdio.h>
    int main()
    {     
      int a = 800, b = 100, c;     
        if(!a >= 400)         
       b = 500;     
         c = 900;      
       printf("b = %d c = %d\n", b, c);      
        return 0; 
    }

Ответ после выполнения этой задачи: b = 100 и c = 900.Но я не понял, как.

Ответы [ 2 ]

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

Наряду с тем, что все остальные упоминают:

  1. Отступы и фигурные скобки помогут вам сделать это проще.

  2. Как написано,оператор if относится только к этой строке "b = 500;"

  3. ! A является противоположностью a.
    a> = 400 - истина! A> = 400 - ложь, поэтому «b = 500» не выполняется.

  4. Результат b по-прежнему равен 100, а c назначено 900

0 голосов
/ 10 февраля 2019
if(!a >= 400)

Поскольку логическое значение не ! имеет более высокий приоритет, это эквивалентно (!a) >= 400.Левая сторона оценивается как 0 (потому что a не равно нулю, поэтому !a равно 0), делая все выражение ложным.Также обратите внимание, что отступ кода не имеет значения для компилятора.

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