C中的括号,怎么样?

时间:2015-05-06 01:05:11

标签: c mathematical-expressions

我想用C语言写这个等式,但我不知道如何使用正确的括号。

Eq=sqrt(e^(-((T-thr))/T) )   + (1-a)/4

1 个答案:

答案 0 :(得分:3)

在C中,^运算符不是取幂。相反,在C中,我们将e x 写为exp(x)。除此之外,你的等式在C中是相同的。我会在一些算子周围放置空格,但是:

Eq = sqrt(exp(-(T - thr) / T)) + (1 - a) / 4;

我假设您的变量(Tthra)是浮点类型(floatdouble)。如果它们是整数,您可能希望强制编译器使用浮点运算,您可以这样做(例如):

Eq = sqrt(exp(-((double)T - thr) / T)) + (1 - a) / 4.0;

另外...... -(T - thr)(thr - T)相同,因此我们可以简化:

Eq = sqrt(exp((thr - (double)T) / T)) + (1 - a) / 4.0;

和(a b c = a bc ,我们可以应用于指数的平方根:√(e < sup> x )=(e x 1/2 = e x / 2 。所以我们可以消除平方根:

Eq = exp((thr - (double)T) / (2 * T))) + (1 - a) / 4.0;