0

人们,谁能告诉我为什么这给了我错误的答案?它应该给我 -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;
}
4

1 回答 1

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;
}
于 2013-02-19T06:47:27.903 回答