我正在尝试让程序打印出浮点值。我试过放%f
,它给了我相同的数字但最后有0。在我的函数定义中,我试图使temp
加倍,但它一直说“表达式必须具有整数类型。”
#include <stdio.h>
int modifyIntegral();
int main() {
int value;
value = modifyIntegral();
printf("The Updated value : %d\n", value);
}
int modifyIntegral() {
double value;
double temp;
scanf_s("%d", &value);
temp = (value < 0) ? -value : value;
if (temp % 10 > temp / 100 % 10) {
temp += -temp % 10 + temp / 100 % 10;
}
else {
temp += 100 * (temp % 10 - temp / 100 % 10);
}
return (value < 0) ? -temp : temp;
}
答案 0 :(得分:2)
你不能在double上使用模数(%)运算符。
答案 1 :(得分:1)
您的计划存在许多问题。
首先,%
是一个整数运算符,因此您不能在浮点类型上使用它。请改用fmod()
其次,您将value
声明为double
,但随后将其作为int
scanf_s("%d", &value);
这会导致未定义的行为
我不明白你需要转换什么?像你这样的操作可以完成,应该以整数完成。