从键盘分别输入两个复数的实部和虚部,求它们的和、差、积、商并分别在屏幕上输出。
输入
输入为两行,每行为一个复数,其中整数(a1,a2),(b1,b2),分别为两个复数的实部和虚部,每行数据之间以空格隔
输出
输出为4行,每行分别为两复数的和、差、积、商,其中每行2个数为复数的虚部和实部S1.S2,每行数据之间以空格隔
从键盘分别输入两个复数的实部和虚部,求它们的和、差、积、商并分别在屏幕上输出。
输入
输入为两行,每行为一个复数,其中整数(a1,a2),(b1,b2),分别为两个复数的实部和虚部,每行数据之间以空格隔
输出
输出为4行,每行分别为两复数的和、差、积、商,其中每行2个数为复数的虚部和实部S1.S2,每行数据之间以空格隔
typedef struct complex//构建复数的结构体类型(包含数部和虚部)
{
float Realpart;
float Imagepart;
}Complex;
void Create(Complex &c,float x,float y)//初始化
{
c.Realpart=x;
c.Imagepart=y;
}
Complex Add(Complex c1,Complex c2)//加法运算
{
Complex sum;
sum.Realpart=c1.Realpart+c2.Realpart;
sum.Imagepart=c1.Imagepart+c2.Imagepart;
return sum;
}
Complex Sub(Complex c1,Complex c2)//减法运算
{
Complex dif;
dif.Realpart=c1.Realpart-c2.Realpart;
dif.Imagepart=c1.Imagepart-c2.Imagepart;
return dif;
}
Complex Mul(Complex c1,Complex c2)//乘法运算
{
Complex cheng;
cheng.Realpart=c1.Realpart*c2.Realpart-c1.Imagepart*c2.Imagepart;
cheng.Imagepart=c1.Realpart*c2.Imagepart+c1.Imagepart*c2.Realpart;
return cheng;
}
Complex Div(Complex c1,Complex c2)//除法运算
{
Complex chu;
chu.Realpart=(c1.Realpart*c2.Realpart+c1.Imagepart*c2.Imagepart)/(c2.Realpart*c2.Realpart+c2.Imagepart*c2.Imagepart);
chu.Imagepart=(c1.Imagepart*c2.Realpart-c1.Realpart*c2.Imagepart)/(c2.Realpart*c2.Realpart+c2.Imagepart*c2.Imagepart);
if((c2.Realpart*c2.Realpart+c2.Imagepart*c2.Imagepart)==0)
printf("the num doesnt exist");
else
return chu;
}
void Show(Complex c)//复数类型的表示方法
{
printf("%f %f\n",c.Realpart,c.Imagepart);
}
int main()
{
int x,y;
printf("请输入第一个复数的实部与虚部:");
scanf("%d %d",&x,&y);
Complex c1;
Create(c1,x,y);
printf("请输入第二个复数的实部与虚部:");
scanf("%d %d",&x,&y);
Create(c2,x,y);
Complex c = Add(c1,c2);
Show(c);
c = Sub(c1,c2);
Show(c);
c = Mul(c1,c2);
Show(c);
d = Div(c1,c2);
Show(c);
return 0;
}