用c语言提高复数到任何幂

时间:2013-02-19 06:28:49

标签: c numbers

人们,任何人都可以告诉我为什么这会给我错误的答案? 它应该给我-3.00 + 4.00i,但它给我1.00 + 0.00i。 我尝试了2 + 0.00i并且它做得很好而且返回了4.00但是它似乎没有将i的系数提高到第二个功率......任何帮助请!!! 顺便说一句,这是用c语言

#include<stdio.h>
#include<complex.h>
#include<math.h>
main()
{
double complex z1 = 1+ 2*I;
double complex FZ1 = pow(z1, 2);
printf("%.2f +%.2fi \n", creal(FZ1), cimag(FZ1));
return 0;
}

1 个答案:

答案 0 :(得分:4)

使用cpow功能。 pow不适用于复数。

#include<stdio.h>
#include<complex.h>
#include<math.h>
main()
{
double complex z1 = 1+ 2*I;
double complex FZ1 = cpow(z1, 2);
printf("%.2f +%.2fi \n", creal(FZ1), cimag(FZ1));
return 0;
}