Объясните работу выражения - C (СИ)

Узнай цену своей работы

Формулировка задачи:

int a,b,k; a = 10; b = 30;
k = a < b?1:0?10, printf("xxxxxxx"):20;
printf("%d",k);
Результат: 1
int a,b,k; a = 10; b = 3;
k = a < b?1:0?10, printf("xxxxxxx"):20;
printf("%d",k);
Результат: 20
int a,b,k; a = 10; b = 3;
k = a < b?1:2?10, printf("xxxxxxx"):20;
printf("%d",k);
Результат: xxxxxxx7 Как работает каждое выражение (порядок действий)?

Решение задачи: «Объясните работу выражения»

textual
Листинг программы
k = a < b?1:0?10, printf("xxxxxxx"):20;
k = a < b ? 1 : (false ? 10, printf("xxxxxxx") : 20); // 10 < 30 истинно значит k = 1, остальное не анализируется.

Объяснение кода листинга программы

  1. Сначала проверяется условие a < b. Если оно истинно, то переменной k присваивается значение 1, и выполнение кода продолжается. Если условие ложно, то выполняется следующая часть выражения.
  2. Вторая часть выражения представлена вложенным тернарным оператором. В нем проверяется условие false. Поскольку оно истинно, то переменной k присваивается значение 10, и функция printf(xxxxxxx) вызывается с аргументом xxxxxxx.
  3. Если условие false ложно, то переменной k присваивается значение 20.
  4. В итоге, переменной k присваивается значение 1 или 10, в зависимости от того, истинно ли условие a < b.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.867 из 5
Похожие ответы