0

人々、なぜこれが私に間違った答えを与えているのか誰か教えてもらえますか?? -3.00 +4.00i になるはずですが、1.00 +0.00i になっています。2 + 0.00i を試してみたところ、うまくいき、4.00 が返されましたが、i の係数が 2 乗されていないようです...助けてください!!! ちなみにこれは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 に答える