Рубрики

Модуль на отрицательных числах

Каковы будут результаты следующей C-программы?

#include <stdio.h>

int main()

{

   int a = 3, b = -8, c = 2;

   printf("%d", a % b / c);

   return 0;

}

Выход

1

% и / имеют одинаковый приоритет и ассоциативность слева направо. Таким образом, сначала выполняется%, что приводит к 3, а затем выполняется /, что приводит к 1. Подчеркивается, что знак левого операнда добавляется к результату в случае оператора модуля в C.

#include <stdio.h>

int main()

{

   // положительный и б отрицательный.

   int a = 3, b = -8;

   printf("%d", a % b);

   return 0;

}

Выход

3

#include <stdio.h>

int main()

{

   // отрицательный и б положительный

   int a = -3, b = 8;

   printf("%d", a % b);

   return 0;

}

Выход

-3

#include <stdio.h>

int main()

{

   // a и b оба отрицательны

   int a = -3, b = -8;

   printf("%d", a % b);

   return 0;

}

Выход

-3

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Модуль на отрицательных числах

0.00 (0%) 0 votes