【问题标题】:Invalid operants to binary ^ [closed]二进制 ^ 的无效操作数 [关闭]
【发布时间】:2014-09-03 14:24:46
【问题描述】:

我正在用 C 语言构建一个函数并遇到一个问题。

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

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

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

【问题讨论】:

  • ^ 是二进制异或,而不是求幂。请参阅exp() 函数。

标签: c++ c compilation ide


【解决方案1】:

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

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

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

#include <math.h>

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

在 C++ 中,标头为 &lt;cmath&gt;,函数位于 std 命名空间中。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多