#include <math.h>
typedef struct _cmplx
{
double x;
double y;
}*Complex;
Complex Add(Complex z1,Complex z2);//这是加法函数,return z1+z2 z1和z2的值不能更改
Complex Sub(Complex z1,Complex z2);//这是减法函数,return z1-z2 z1和z2的值不能更改
Complex Mul(Complex z1,Complex z2);//这是乘法函数,return z1*z2 z1和z2的值不能更改
Complex Div(Complex z1,Complex z2);//这是除法函数,return z1/z2 z1和z2的值不能更改
Complex Init(double x,double y)//初始化函数,给复数指针分配空间,并赋初值
{
Complex z=malloc(sizeof(*z));
z->x=x;
z->y=y;
return z;
}
void PrintComplex(Complex z)//打印输出成a+bi的形式
{
printf("%.2f",z->x+z->y);
}
main()//程序运行举例
{
double x1,y1;
double x2,y2;
Complex A,S,M,D,z1,z2;
scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
z1=Init(x1,y1),z2=Init(x2,y2);
A=Add(z1,z2);S=Sub(z1,z2);M=Mul(z1,z2);D=Div(z1,z2);
PrintComplex(A);
PrintComplex(S);
PrintComplex(M);
PrintComplex(D);
}
//--------------------------------------------------------------
/*注意!线上面的内容是不能够更改的*/
Complex Add(Complex z1,Complex z2)
{
}
Complex Sub(Complex z1,Complex z2)
{
}
Complex Mul(Complex z1,Complex z2)
{
}
Complex Div(Complex z1,Complex z2)
{
}
为什么不行啊
Complex Add(Complex z1,Complex z2)
{
Complex z;
z->x=z1->x+z2->x;
z->y=z1->y+z2->y;
return z;
}
Complex Sub(Complex z1,Complex z2)
{
Complex z;
z->x=z1->x-z2->x;
z->y=z1->y-z2->y;
return z;
}
Complex Mul(Complex z1,Complex z2)
{
Complex z;
z->x=z1->x*z2->x-z1->y*z2->y;
z->y=z1->x*z2->x+z1->y*z2->y;
return z;
}
Complex Div(Complex z1,Complex z2)
{
Complex z;
z->x=(z1->x*z2->x+z1->y*z2->y)/(z2->x*z2->x+z2->y*z2->y);
z->y=(z1->y*z2->x-z1->x*z2->y)/(z2->x*z2->x+z2->y*z2->y);
return z;
}