gpt4 book ai didi

c - 为什么 exp(iπ) 返回 1 而不是 -1?

转载 作者:太空宇宙 更新时间:2023-11-04 03:21:19 27 4
gpt4 key购买 nike

#include <stdio.h>
#include <complex.h>
#include <math.h>

const long double PI = acos(-1);
int main() {
double complex z = exp(PI*I);
printf("%lf %lf", crealf(z), cimagf(z));

return 0;
}

我们知道exp((pi)(i))应该是cos(pi) + i*sin(pi) = -1,那为什么当我运行这个程序时输出 1?

最佳答案

代码将 cexpcexpl 拼错为 exp

在C中,这些函数声明为

long double complex cexpl(long double complex z);
double complex cexp(double complex z);
double exp(double arg);

C++ 中,以上所有(以及更多)都可用作 std::exp()。但是 C 不支持重载,因此作为程序员,您有责任选择适合您的参数的那个,否则您会发现输入值被转换(使用缩小转换,如果必要的)。这意味着 z 的虚部丢失,在您的代码中留下 exp(0)

关于c - 为什么 exp(iπ) 返回 1 而不是 -1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45942669/

27 4 0