欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

用c語言,如何編寫兩個復數的運算啊,都含有虛部,謝謝啊?

錢瀠龍2年前13瀏覽0評論

定義一個struct作為復數,然后分別定義加減剩除運算。可以增加一個函數printcomplex來在主函數中以數學的形式輸出復數。

typedefstructcomplex

{

doublereal;//實部

doubleimage;//虛部

}COMPLEX;

COMPLEXadd(COMPLEXa,COMPLEXb)//加法

{

COMPLEXsum;

sum.real=a.real+b.real;

sum.image=a.image+b.image;

returnsum;

}

COMPLEXsub(COMPLEXa,COMPLEXb)//減法

{

COMPLEXdiff;

diff.real=a.real-b.real;

diff.image=a.image-b.image;

returndiff;

}

COMPLEXmul(COMPLEXa,COMPLEXb)//乘法

{

COMPLEXacc;

acc.real=a.real*b.real-a.image*b.image;

acc.image=a.real*b.image+a.image*b.real;

returnacc;

}

COMPLEXdivi(COMPLEXa,COMPLEXb)//除法

//除法去分母可以轉換為乘法

{

COMPLEXquo;

doubleden=b.real*b.real+b.image*b.image;//分母

/*先判斷除數是否為0,因為均為double型,所以不能直接與0作比較,而要用絕對值是否小于某個極小值e(讀伊夫西龍???)來判斷是否為0,這里取e=10e-10*/

if((abs(b.real)<10e-10)&&(abs(b.image)<10e-10))

{

printf("DivivdbyZero");

exit(0);//強制退出程序

}

quo.real=a.real*b.real+a.image*b.image;

quo.real/=den;

quo.image=a.image*b.real+a.real*b.image;

quo.image/=den;

returnquo;

}

voidprintcom(COMPLEXa)//輸出復數a

{

printf("%lf+%lfi",a.real,a.image);

}