天天看点

两个复数相加减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);

}