天天看點

兩個複數相加減c語言程式設計,用c語言 如何編寫兩個複數的運算啊 都含有虛部 謝謝啊...

匿名使用者

1級

2006-04-17 回答

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

typedef struct complex

{

double real; //實部

double image; //虛部

} COMPLEX;

COMPLEX add(COMPLEX a,COMPLEX b) //加法

{

COMPLEX sum;

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

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

return sum;

}

COMPLEX sub(COMPLEX a,COMPLEX b) //減法

{

COMPLEX diff;

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

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

return diff;

}

COMPLEX mul(COMPLEX a,COMPLEX b) //乘法

{

COMPLEX acc;

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

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

return acc;

}

COMPLEX divi(COMPLEX a,COMPLEX b) //除法

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

{

COMPLEX quo;

double den = b.real*b.real+b.image*b.image; //分母

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

{

printf("Divivd by Zero");

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;

return quo;

}

void printcom(COMPLEX a) //輸出複數a

{

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

}