用C语言定义复数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验0预备实验实验题目:
用c语言的结构类型定义表示复数
(1)用浮点型
(2)实行+-*、/运算
实验代码:
#include
typedef struct{
int e1,e2;}Complex;
Complex InitComplex(int v1,int v2)
{Complex z;
z.e1=v1;
z.e2=v2;
return z;}
int Getreal(Complex z)
{
return z.e1;}
int Getimagetpart(Complex z)
{
return z.e2;
}
Complex Add(Complex z1,Complex z2)
{z1.e1=z1.e1+z2.e1;
z1.e2=z1.e2+z2.e2;
return z1;}
Complex Sub(Complex z1,Complex z2)
{z1.e1=z1.e1-z2.e1;
z2.e2=z1.e2-z2.e2;
return z1;}
Complex Mul(Complex z1,Complex z2)
{z1.e1=z1.e1*z2.e1+z1.e2+z2.e2;
z1.e2=z1.e1*z2.e2+z1.e2+z2.e1;
return z1;}
Complex Div(Complex z1,Complex z2)
{z1.e1=(z1.e1*z2.e1+z1.e2+(-z2.e2))/(z2.e1*z2.e1-z2.e2*z2.e2);
z1.e2=(z1.e1*(-z2.e2)+z1.e2+z2.e1)/(z2.e1*z2.e1-z2.e2*z2.e2);
return z1;}
main()
{
char e;
int x,y,a,b;
Complex z1,z2,z;
printf("please input first complex number:\n"); scanf("%d%d",&x,&y);
z1=InitComplex(x,y);
printf("the other one:\n");
scanf("%d%d",&a,&b);
z2=InitComplex(a,b);
printf("please choice operation:+,-,*,/:\n"); getchar();
scanf("%c",&e);
if(e=='+')
z=Add(z1,z2);
if(e=='-')
z=Sub(z1,z2);
if(e=='*')
z=Mul(z1,z2);
if(e=='/')
z=Div(z1,z2);
printf("%d+%di",z.e1,z.e2);
return0;
}
实验截图: