我在C中構建一個函數並面臨一個問題。無效的二進制操作符^
我知道所有的操作數都應該是相同的格式。
如果a,b,c是整數,end result和d是float且e = 2.71828,那麼如何讓程序運行?
f=(a*(e^(-((x-b)^2/(2*c^2))))+d);
我在C中構建一個函數並面臨一個問題。無效的二進制操作符^
我知道所有的操作數都應該是相同的格式。
如果a,b,c是整數,end result和d是float且e = 2.71828,那麼如何讓程序運行?
f=(a*(e^(-((x-b)^2/(2*c^2))))+d);
在C++中使用pow而不是^運算符。在頂部包含cmath預處理器
^
是按位異或運算符,僅適用於整數類型。
我猜你想要指數。這裏沒有操作符,但標準庫包含取冪函數:pow
爲任意值,而exp
爲e
。爲了平方,最好使用乘法。
該問題的標籤有兩種不同的標準庫的不同語言。在C語言中,你會做
#include <math.h>
f = a*exp((x-b)*(x-b)/(2*c*c)) + d;
在C++中,標題是<cmath>
和功能在std
命名空間。
'^'是一個二進制異或,並非冪指數。參見'exp()'函數。 – FatalError 2014-09-03 14:27:38