#include<stdio.h>
typedef struct{
float realpart; /*实部 */
float imagprat; /*虚部 */
}Complex; /*定义复数抽象类型 */
void assign(Complex *A, float real, float imag); /*赋值*/
void add( Complex A, Complex B, Complex *c); /* A + B */
void minus( Complex A, Complex B, Complex *c); /* A - B */
void multiply( Complex A, Complex B, Complex *c); /* A * B */
void divide( Complex A, Complex B, Complex *c); /* A / B */
void gonger(Complex *z); //求共轭复数
int main()
{
Complex z1, z2, z3, z4, z;
float RealPart, ImagPart;
assign(&z1, 8.0, 6.0);
printf("%lf %lf\n",z1.realpart ,z1.imagprat);
assign(&z2, 4.0, 3.0);
printf("%lf %lf\n",z2.realpart ,z2.imagprat);
add(z1, z2, &z3);
printf("%lf %lf\n",z3.realpart ,z3.imagprat);
multiply(z1, z2, &z4);
printf("%lf %lf\n",z4.realpart ,z4.imagprat);
divide(z4, z3, &z);
printf("%lf %lf\n",z.realpart ,z.imagprat);
return 0;
}
void assign(Complex *A, float real, float imag)
{
A->realpart = real;
A->imagprat = imag;
}
void add( Complex A, Complex B, Complex *c)
{
c->realpart = A.realpart + B.realpart;
c->imagprat = A.imagprat + B.imagprat;
}
void minus( Complex A, Complex B, Complex *c)
{
c->realpart = A.realpart - B.realpart;
c->imagprat = A.imagprat - B.imagprat;
}
void multiply( Complex A, Complex B, Complex *c)
{
c->realpart = A.realpart*B.realpart - A.imagprat*B.imagprat;
c->imagprat = A.realpart*B.imagprat + A.imagprat*B.realpart;
}
void gonger(Complex *z) //求共轭复数
{
z->imagprat = -(z->imagprat);
}
void divide( Complex A, Complex B, Complex *c)
{
gonger(&B);
c->realpart = (A.realpart*B.realpart - A.imagprat*B.imagprat) / (B.imagprat*B.imagprat +B.realpart*B.realpart);
c->imagprat = (A.realpart*B.imagprat + A.imagprat*B.realpart) / (B.imagprat*B.imagprat +B.realpart*B.realpart);
}
1.3抽象数据类型的表示与实现_复数运算.
猜你喜欢
转载自blog.csdn.net/weixin_45899700/article/details/105854957
今日推荐
周排行