[問題] 請問一段程式碼

看板C_and_CPP作者 (Yes We Can!)時間14年前 (2009/10/26 18:56), 編輯推噓6(6010)
留言16則, 3人參與, 最新討論串1/1
#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

10/26 18:57, , 1F
不合法的運算元for二元運算子%; 簡單的說, %取餘數運算
10/26 18:57, 1F

10/26 18:58, , 2F
不支援對浮點數做, 要對浮點數做似乎是fmod()這函數.
10/26 18:58, 2F

10/26 18:58, , 3F
我是要取模數 2*pi 所以用取餘數 這樣寫不行嗎
10/26 18:58, 3F

10/26 18:59, , 4F
soga, 感謝!
10/26 18:59, 4F

10/26 19:00, , 5F
寫 x- (x/2*pi)*(2*pi)這樣行不行?
10/26 19:00, 5F

10/26 19:00, , 6F
另外負號在相反= = 不過matlab可以直接這樣寫..剛還反應不來
10/26 19:00, 6F

10/26 19:04, , 7F
Q大的寫法似乎也行 感謝
10/26 19:04, 7F

10/26 19:07, , 8F
x/2*pi 先轉成int XD忘了寫 不過突然覺得為啥math.h不提供
10/26 19:07, 8F

10/26 19:07, , 9F
mod 浮點數呢?
10/26 19:07, 9F

10/26 19:13, , 10F
fmod就是math.h的啊??還是C++有C沒有?_?
10/26 19:13, 10F

10/26 19:14, , 11F
x- (x/2*pi)*(2*pi)這個寫法除了減出浮點運算的誤差以外
10/26 19:14, 11F

10/26 19:15, , 12F
減不出其他東西吧?_? 轉int也偏離了fmod()吧?_?
10/26 19:15, 12F

10/26 19:16, , 13F
而且感覺應該是想寫x- x/(2*pi)*(2*pi) ?_?
10/26 19:16, 13F

10/26 19:19, , 14F
這case不用函數作, 考慮原po的pi只有兩位小數, 小弟我會
10/26 19:19, 14F

10/26 19:20, , 15F
直接都乘以100取整之後取餘數完在除以100回來....@_@"
10/26 19:20, 15F

10/26 19:30, , 16F
剛發現我搞混了, 商是整數, 所以Q大的取整就行了....Orz
10/26 19:30, 16F
文章代碼(AID): #1AvO18e5 (C_and_CPP)