就是,感觉没有什么思路,老师说要用到线性表的知识
#include <stdio.h>
typedef struct
{
float re;
float im;
} Complex;
Complex createComplex(float a,float b) //编写一个函数生成复数//
{
Complex z;
z.re=a;
z.im=b;
return z;
}
void printComplex(Complex z) //输出复数并控制其格式//
{
if(z.re==0&&z.im==0)
printf("0\n");
else if(z.re!=0&&z.im==0)
printf("%.2f\n",z.re);
else if(z.re==0&&z.im!=0)
{
if(z.im>0)
printf("i%.2f\n",z.im);
else if(z.im<0)
printf("-i%.2f\n",fabs(z.im));
}
else
{
if(z.im>0)
printf("%.2f+i%.2f\n",z.re,z.im);
else
printf("%.2f-i%.2f\n",z.re,fabs(z.im));
}
}
Complex add(Complex z1,Complex z2)
{
Complex z;
z.re=z1.re+z2.re;
z.im=z1.im+z2.im;
return z;
}
Complex jian(Complex z1,Complex z2)
{
Complex z;
z.re=z1.re-z2.re;
z.im=z1.im-z2.im;
return z;
}
Complex cheng(Complex z1,Complex z2)
{
Complex z;
z.re=z1.re*z2.re-z1.im*z2.im;
z.im=z1.re*z2.im+z1.im*z2.re;
return z;
}
int main()
{
float a,b,c,d;
Complex z1,z2,c1,c2,c3;
printf("请输入元素");
scanf("%f%f%f%f",&a,&b,&c,&d); //输入元素并调用函数生成复数z1,z2;并输出//
z1=createComplex(a,b);
z2=createComplex(c,d);
printf("产生的两个复数为:");
printComplex(z1);
printComplex(z2);
c1=add(z1,z2);
c2=jian(z1,z2);
c3=cheng(z1,z2);
printf("这两个复数的和差积:");
printComplex(c1);
printComplex(c2);
printComplex(c3);
return 0;
}