2014-09-03 180 views
-6

我在C中構建一個函數並面臨一個問題。無效的二進制操作符^

我知道所有的操作數都應該是相同的格式。

如果a,b,c是整數,end result和d是float且e = 2.71828,那麼如何讓程序運行?

f=(a*(e^(-((x-b)^2/(2*c^2))))+d); 
+9

'^'是一個二進制異或,並非冪指數。參見'exp()'函數。 – FatalError 2014-09-03 14:27:38

回答

0

在C++中使用pow而不是^運算符。在頂部包含cmath預處理器

2

^是按位異或運算符,僅適用於整數類型。

我猜你想要指數。這裏沒有操作符,但標準庫包含取冪函數:pow爲任意值,而expe。爲了平方,最好使用乘法。

該問題的標籤有兩種不同的標準庫的不同語言。在C語言中,你會做

#include <math.h> 

f = a*exp((x-b)*(x-b)/(2*c*c)) + d; 

在C++中,標題是<cmath>和功能在std命名空間。

相關問題