我在C中构建一个函数并遇到问题。
我知道所有操作数应该采用相同的格式。
如果a,b,c是整数,最终结果和d是浮点数并且e = 2.71828,那么如何使程序运行?
f=(a*(e^(-((x-b)^2/(2*c^2))))+d);
答案 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预处理器