2014-09-03 231 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命名空间。

相关问题