无法在C中对pow()使用取模

时间:2018-12-18 10:44:24

标签: c compiler-errors

我正在编写程序,并且已经在此部分停留了很长时间。

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

显示的错误是invalid operands of types 'int' and 'double' to binary 'operator%'

对此有任何解决方法(即使用pow()函数)吗?

2 个答案:

答案 0 :(得分:8)

在C中,pow返回double,而与输入参数的类型无关。

并且double不能用作%的参数。

因此,编译器会发出错误消息。

解决方案是使用10 * 10而不是使用pow将数字提高到第二幂。请注意,由于%的优先级与*相同,因此您需要将表达式写为111 % (10 * 10)

答案 1 :(得分:-1)

double实际上返回一个%,模运算符fmod无法对其进行操作。

请尝试使用math.h方法(在dependencies { classpath 'com.android.tools.build:gradle:3.2.1' 中声明)。