复数的基本运算(C语言)教学教材

复数的基本运算(C语言)教学教材
复数的基本运算(C语言)教学教材

复数的基本运算(C语

言)

#include

#include

typedef struct fushu//抽象数据类型定义

{

float real;//数据对象

float image;

}fushu;

fushu ComplexNumberInput(float a,float b)//构造二元组{

fushu c;

c.real=a;//实部

c.image=b;//虚部

return(c);

}

fushu ComplexNumberAdd(fushu c1,fushu c2)//求和运算{

fushu sum;

sum.real=c1.real+c2.real;

sum.image=c1.image+c2.image;

return (sum);

}

fushu ComplexNumberSub(fushu c1,fushu c2)//求差运算{

fushu sub;

sub.real=c1.real-c2.real;

sub.image=c1.image-c2.image;

return (sub);

}

fushu ComplexNumberMul(fushu c1,fushu c2)//求积运算{

fushu Mul;

Mul.real=c1.real*c2.real-c1.image*c2.image;

Mul.image=c1.real*c2.image+c1.image*c2.real;

return (Mul);

}

fushu ComplexNumberDiv(fushu c1,fushu c2)//求商运算

{

fushu div;

float d1,d2,d3,d4;

d1=c1.real*c2.real+c1.image*c2.image;

d2=c2.real*c2.real+c2.image*c2.image;

d3=c1.image*c2.real-c1.real*c2.image;

d4=c2.real*c2.real+c2.image*c2.image;

if(d2!=0&&d4!=0)

{

div.real=d1/d2;

div.image=d3/d4;

return(div);

}

else

{

div.real=0;

div.image=0;

return(div);

}

}

void ComplexNumberOutput(fushu c)//输出运算结果

{

if(c.real==0.0&&c.image==0.0) printf("0\n");

if(c.real==0.0&&c.image!=0.0) printf("%fi\n",c.image);

if(c.real!=0.0&&c.image==0.0) printf("%f\n",c.real);

if(c.real!=0.0&&c.image!=0.0) printf("%f+(%fi)\n",c.real,c.image); }

void main()//主函数

{

int choice;

int k;

float a1,a2,b1,b2;

struct fushu c1,c2,sum,sub,mult,div;

printf("欢迎进行复数的基本代数运算\n");

相关主题
相关文档
最新文档