2013-02-19 9 views
0

人,有人可以告訴我爲什麼這是給了我錯誤的答案? 它應該給我-3.00 + 4.00i,但它給我1.00 + 0.00i。 我嘗試了2 + 0.00i,它做得很好,並返回了4.00,但它似乎沒有提高我的係數,以第二個力量...任何幫助,請! 順便說一下,這是在c語言提高一個複雜的數字,以任何權力在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; 
} 
+0

我想你想要['cpow'](http://en.cppreference.com/w/c/numeric/complex/cpow)函數。 – 2013-02-19 06:31:04

+0

aaaaawesome !!!!非常感謝 – user2059456 2013-02-19 06:36:19

+0

abs(z1)...如果z1 = -1 -2i,例如我的意思是常規絕對值不起作用,出租車(z1)給了我一些奇怪的東西 – user2059456 2013-02-19 06:39:21

回答

3

使用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; 
} 
相關問題