-1

如何将以下每个数学表达式转换为 C 中的等效语句?

  1. 1 / (x^2 + y^2)

  2. (b^2 - 4ac) 的平方根

4

1 回答 1

6
  • 1.0 / (pow(x,2) + pow(y,2))
  • sqrt(pow(b,2) - 4*a*c)

参见pow()功能sqrt()手册。

您也可以写x*x而不是pow(x, 2). 两者都将具有完全相同的结果和性能(编译器知道pow函数的作用以及如何优化它)。


(对于评论者)

GCC 为这两个函数输出完全相同的汇编代码:

double pow2_a(double x) {
    return pow(x, 2);
}

double pow2_b(double x) {
    return x * X;
}

汇编器:

    fldl    4(%esp)
    fmul    %st(0), %st
    ret
于 2011-09-07T11:30:15.277 回答