二进制^的操作数无效

时间:2014-09-03 14:24:47

标签: c++ c compilation ide

我在C中构建一个函数并遇到问题。

我知道所有操作数应该采用相同的格式。

如果a,b,c是整数,最终结果和d是浮点数并且e = 2.71828,那么如何使程序运行?

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

2 个答案:

答案 0 :(得分:2)

^是按位异或运算符,仅适用于整数类型。

我猜你想要取幂。没有操作符,但标准库包含取幂函数:pow表示任意值,exp表示e。对于平方,使用乘法可能更好。

这个问题标有两种不同的语言,它们有不同的标准库。在C中,你会做

#include <math.h>

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

在C ++中,标题为<cmath>,函数位于std命名空间中。

答案 1 :(得分:0)

在c ++中使用pow代替^运算符。在顶部包含cmath预处理器