显示统一的第n个根的程序(C编程)

时间:2016-10-31 13:32:30

标签: c

当给出正整数n时,我必须编写显示统一的第n个根的程序。它是K.N.King关于C编程的书中的编程项目27.4。

我的尝试:

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

int main(void)
{
int n, k;
double complex nth;

printf("Enter positive integer: ");
scanf("%d", &n);

for (k = 0; k < n; k++) {
  nth = exp(2 * M_PI * I * k / n);
  printf("k = %d, %g + %g\n", k, creal(nth), cimag(nth));
}

return 0;
}

无论n的值是多少,我传递的结果都是一样的。你能给我一些提示吗?

1 个答案:

答案 0 :(得分:2)

exp函数需要double,但您传递double complex

改为使用cexp

nth = cexp(2 * M_PI * I * k / n);

输出:

Enter positive integer: 5
k = 0, 1 + 0
k = 1, 0.309017 + 0.951057
k = 2, -0.809017 + 0.587785
k = 3, -0.809017 + -0.587785
k = 4, 0.309017 + -0.951057