Невозможно использовать по модулю с pow () в C - PullRequest
0 голосов
/ 18 декабря 2018

Я пишу программу и застрял в этой части на некоторое время.

int y;
y = 111 % pow(10,2);
printf("%d",y);

Показана ошибка invalid operands of types 'int' and 'double' to binary 'operator%'.

Есть ли обходной путь к этому(т.е. используя функцию pow())?

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

pow фактически возвращает double, на котором оператор модуля % не может работать.

Попробуйте вместо этого использовать метод fmod (объявленный в math.h).

0 голосов
/ 18 декабря 2018

В C pow возвращает double независимо от типов входных параметров.

И double нельзя использовать в качестве аргумента для %.

Следовательно, компилятор выдает ошибку.

Решение состоит в том, чтобы использовать 10 * 10 вместо использования pow для повышения числа до его второй степени.Обратите внимание, что поскольку % имеет тот же приоритет, что и *, вам необходимо написать выражение как 111 % (10 * 10).

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