二进制^的操作数无效

Invalid operants to binary ^

本文关键字:无效 操作数 二进制      更新时间:2023-10-16

我正在C中构建一个函数,并面临一个问题。

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

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

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

^是逐位互斥或运算符,仅适用于整数类型。

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

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

#include <math.h>
f = a*exp((x-b)*(x-b)/(2*c*c)) + d;

在C++中,头是<cmath>,函数在std命名空间中。

在c++中使用pow而不是^运算符。在顶部包括cmath预处理器