作者fjf1980 (Yes We Can!)
看板C_and_CPP
标题[问题] 请问一段程式码
时间Mon Oct 26 18:56:05 2009
#define pi 3.14
int main(int argc, char *argv[])
{
double x=8;
double input_x=0.0;
if(x >= (2*pi))
input_x = x%(2*pi); //这行有问题
else
input_x = x;
printf("%d\n",sn(input_x));
system("PAUSE");
return 0;
}
用DEV_c++ 结果有以下错误讯息,不太懂哪里错了!恳请高手指点!
//为何是无效的运算元
28 C:\Dev-Cpp\out\cow.c invalid operands to binary %
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.230.197.214
1F:推 VictorTom:不合法的运算元for二元运算子%; 简单的说, %取余数运算 10/26 18:57
2F:→ VictorTom:不支援对浮点数做, 要对浮点数做似乎是fmod()这函数. 10/26 18:58
3F:→ fjf1980:我是要取模数 2*pi 所以用取余数 这样写不行吗 10/26 18:58
4F:→ fjf1980:soga, 感谢! 10/26 18:59
5F:推 QQ29:写 x- (x/2*pi)*(2*pi)这样行不行? 10/26 19:00
6F:→ QQ29:另外负号在相反= = 不过matlab可以直接这样写..刚还反应不来 10/26 19:00
7F:→ fjf1980:Q大的写法似乎也行 感谢 10/26 19:04
8F:推 QQ29:x/2*pi 先转成int XD忘了写 不过突然觉得为啥math.h不提供 10/26 19:07
9F:→ QQ29:mod 浮点数呢? 10/26 19:07
10F:推 VictorTom:fmod就是math.h的啊??还是C++有C没有?_? 10/26 19:13
11F:→ VictorTom:x- (x/2*pi)*(2*pi)这个写法除了减出浮点运算的误差以外 10/26 19:14
12F:→ VictorTom:减不出其他东西吧?_? 转int也偏离了fmod()吧?_? 10/26 19:15
13F:→ VictorTom:而且感觉应该是想写x- x/(2*pi)*(2*pi) ?_? 10/26 19:16
14F:推 VictorTom:这case不用函数作, 考虑原po的pi只有两位小数, 小弟我会 10/26 19:19
15F:→ VictorTom:直接都乘以100取整之後取余数完在除以100回来....@_@" 10/26 19:20
16F:推 VictorTom:刚发现我搞混了, 商是整数, 所以Q大的取整就行了....Orz 10/26 19:30