基本C编程,printf函数

时间:2014-01-27 01:05:26

标签: c printf

while (i) {
    printf("Digit (%d) = %d", d, ((num2/(pow(10,(i-1))))%10));
    d++;
    i--;
}

id是先前在函数中声明的int值。我得到的错误是“Operands of '%' have incompatible types 'double' and 'int'.

即使在摆弄这些值之后,我仍然会收到此错误消息。

2 个答案:

答案 0 :(得分:7)

这是因为pow会返回double。你必须对它进行类型化。将语句更改为:

printf("Digit (%d) = %d", d, ((int)(num2/(pow(10,(i-1))))%10));

答案 1 :(得分:3)

除了将分子转换为int之外,您还可以调用fmod()以浮点数执行模块化计算。

printf("Digit (%d) = %lf", d, fmod((num2/(pow(10.0,(i-1)))),10.0));