【发布时间】: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
我正在用 C 语言构建一个函数并遇到一个问题。
我知道所有操作数都应该采用相同的格式。
如果a,b,c是整数,最终结果和d是浮点数并且e=2.71828,如何让程序运行?
f=(a*(e^(-((x-b)^2/(2*c^2))))+d);
【问题讨论】:
^ 是二进制异或,而不是求幂。请参阅exp() 函数。
标签: c++ c compilation ide
^ 是按位异或运算符,仅适用于整数类型。
我猜你想要取幂。没有运算符,但标准库包含求幂函数:pow 用于任意值,exp 用于e。对于平方,使用乘法可能更好。
问题用两种不同的语言标记,它们具有不同的标准库。在 C 中,你会这样做
#include <math.h>
f = a*exp((x-b)*(x-b)/(2*c*c)) + d;
在 C++ 中,标头为 <cmath>,函数位于 std 命名空间中。
【讨论】:
在 c++ 中使用 pow 代替 ^ 运算符。在顶部包含 cmath 预处理器
【讨论】: