复数的基本运算(C语言)教学教材
![复数的基本运算(C语言)教学教材](https://img.360docs.net/imgab/1k1onh7fudof64ghsksr29r3l84zbz42-b1.webp)
![复数的基本运算(C语言)教学教材](https://img.360docs.net/imgab/1k1onh7fudof64ghsksr29r3l84zbz42-92.webp)
复数的基本运算(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");