#include<iostream>
using namespace std;
typedef struct fushu
{
/* data */
float realpart;
float imagpart;
} Complex;
Complex assign(float real,float imag);
Complex add(Complex A,Complex B);
Complex minus(Complex A,Complex B);
Complex multiply(Complex A,Complex B);
Complex divide(Complex A,Complex B);
float GetReal(Complex C)
{
return C.realpart;
}
float GetImag(Complex C)
{
return C.imagpart;
}
Complex assign(float real,float imag)
{
Complex A;
A.realpart=real;
A.imagpart=imag;
return A;
}
Complex add(Complex A,Complex B)
{
Complex sum;
sum.realpart=A.realpart+B.realpart;
sum.imagpart=A.imagpart+B.imagpart;
return sum;
}
Complex minus(Complex A,Complex B)
{
Complex sum;
sum.realpart=A.realpart-B.realpart;
sum.imagpart=A.imagpart-B.imagpart;
return sum;
}
Complex multiply(Complex A,Complex B)
{
Complex sum;
sum.realpart=(A.realpart*B.realpart-A.imagpart*B.imagpart);
sum.imagpart=(A.imagpart*B.realpart+A.realpart*B.imagpart);
return sum;
}
Complex divide(Complex A,Complex B)
{
Complex sum;
sum.realpart=(A.realpart*B.realpart+A.imagpart*B.imagpart)
/(B.realpart*B.realpart+B.imagpart*B.imagpart);
sum.imagpart=(A.imagpart*B.realpart-A.realpart*B.imagpart)
/(B.realpart*B.realpart+B.imagpart*B.imagpart);
return sum;
}
int main()
{
Complex z1,z2,z3,z4,z;
z1=assign(8.0,6.0);
z2=assign(4.0,3.0);
z3=add(z1,z2);
z4=multiply(z1,z2);
z=divide(z4,z3);
if(z.imagpart<0)
{
cout<<z.realpart<<z.imagpart<<"i"<<endl;
}
else{
cout<<z.realpart<<"+"<<z.imagpart<<"i"<<endl;
}
system("pause");
return 0;
}
c++实现复数计算
最新推荐文章于 2024-04-24 13:10:56 发布