看板 C_and_CPP 關於我們 聯絡資訊
#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
VictorTom:不合法的運算元for二元運算子%; 簡單的說, %取餘數運算 10/26 18:57
VictorTom:不支援對浮點數做, 要對浮點數做似乎是fmod()這函數. 10/26 18:58
fjf1980:我是要取模數 2*pi 所以用取餘數 這樣寫不行嗎 10/26 18:58
fjf1980:soga, 感謝! 10/26 18:59
QQ29:寫 x- (x/2*pi)*(2*pi)這樣行不行? 10/26 19:00
QQ29:另外負號在相反= = 不過matlab可以直接這樣寫..剛還反應不來 10/26 19:00
fjf1980:Q大的寫法似乎也行 感謝 10/26 19:04
QQ29:x/2*pi 先轉成int XD忘了寫 不過突然覺得為啥math.h不提供 10/26 19:07
QQ29:mod 浮點數呢? 10/26 19:07
VictorTom:fmod就是math.h的啊??還是C++有C沒有?_? 10/26 19:13
VictorTom:x- (x/2*pi)*(2*pi)這個寫法除了減出浮點運算的誤差以外 10/26 19:14
VictorTom:減不出其他東西吧?_? 轉int也偏離了fmod()吧?_? 10/26 19:15
VictorTom:而且感覺應該是想寫x- x/(2*pi)*(2*pi) ?_? 10/26 19:16
VictorTom:這case不用函數作, 考慮原po的pi只有兩位小數, 小弟我會 10/26 19:19
VictorTom:直接都乘以100取整之後取餘數完在除以100回來....@_@" 10/26 19:20
VictorTom:剛發現我搞混了, 商是整數, 所以Q大的取整就行了....Orz 10/26 19:30