Тернарный оператор - пояснить код - C (СИ)

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

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

Вводим числа 1234 = 1+2+3+4 -> 10
#include <stdio.h>
int main()
{
int x1,x2,x3,x4,x5,x6;
char c;
scanf("%d",&x1);
x2=x1%10;
x3=x1%100/10;
x4=x1%1000/100;
x5=x1/1000;
//printf("%d\n",x2+x3+x4+x5);
x6=x5+x4+x3+x2;
c = (x6 % 3 && x6 % 9) == 0 
    ? 'y' 
    : 'n';
printf("%d %c\n",x6,c);
}
Почему при вводе 1236 выдает Истину? 12 не делится на 9.

Решение задачи: «Тернарный оператор - пояснить код»

textual
Листинг программы
(12 % 3 && 12 % 9)

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

В данном коде используется тернарный оператор. Он работает следующим образом:

  1. 12 % 3 - это операция взятия остатка от деления числа 12 на 3. Результат этой операции равен 0, так как 12 делится на 3 без остатка.
  2. 12 % 9 - это операция взятия остатка от деления числа 12 на 9. Результат этой операции также равен 0, так как 12 делится на 9 без остатка.
  3. 12 % 3 && 12 % 9 - это выражение, в котором сначала выполняется операция взятия остатка от деления числа 12 на 3, а затем результат этой операции сравнивается с результатом операции взятия остатка от деления числа 12 на 9.
  4. Результатом всего выражения будет 0, так как оба выражения 12 % 3 и 12 % 9 равны 0, и при сравнении двух нулей, результат также будет 0. Таким образом, код выполняет проверку, являются ли числа 12 и 9 кратными друг другу. В данном случае, они являются кратными, так как результат выражения равен 0.

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


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

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

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