作业帮 > 综合 > 作业

c语言中求复数的和与积

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/07/13 12:59:51
c语言中求复数的和与积
用以下结构描述复数信息struct complex{int real ,im;}; //分别表示复数的实部与虚部试写出两个通用函数,分别用来求两个复数的和与积.要求:①函数的返回值和形式参数用结构体变量.其函数原型分别为struct complex cadd(struct complex creal,struct complex cim);struct complex cmult(struct complex creal,struct complex cim);②函数的返回值和形式参数用结构体指针变量.其函数原型分别为struct complex *cadd(struct complex *creal,struct complex *cim);struct complex *cmult(struct complex *creal,struct complex *cim);
请写全
c语言中求复数的和与积
1.
struct complex cadd(struct complex creal,struct complex cim)
{
   complex c;
   c.real=creal.real+cim.real;
   c.im=creal.im+cim.im;
   return c;
}
struct complex cmult(struct complex creal,struct complex cim)
{
   complex c;
   c.real=creal.real*cim.real-creal.im*cim.im;
   c.im=creal.real*cim.im+creal.im*cim.real;
   return c;
}

2.
struct complex *cadd(struct complex *creal,struct complex *cim)
{
   complex c;
   c.real=creal->real+cim->real;
   c.im=creal->im+cim->im;
   creal->real=c.real;
   creal->im=c.im;
   return creal;
}
struct complex *cmult(struct complex *creal,struct complex *cim)
{
   complex c;
   c.real=creal->real*cim->real-creal->im*cim->im;
   c.im=creal->real*cim->im+creal->im*cim->real;
   creal->real=c.real;
   creal->im=c.im;
   return creal;
}
再问: main������
再答: ��Ҫ��ʲô����˵main������ʲô����˵��Ҫ������������Ҳû˵����ô��?��������һ������ͬʱ������һ���ļ��� ȷ������Ҫ��ʲô��������������������硣
再问: main������д����������ֱ�������ֺ����������ļ��У�лл����дһ��
再答: 1.
....
int main()
{
   complex a,b,c;
   printf("Number one real part:");
   scanf("%d",&a.real);
   printf("Number one image part:");
   scanf("%d",&a.im);
   printf("Number two real part:");
   scanf("%d",&b.real);
   printf("Number two image part:");
   scanf("%d",&b.im);
   c=cadd(a,b);
   printf("Add result:%d%+di\n",c.real,c.im);
   c=cmult(a,b);
   printf("Multip result:%d%+di\n",c.real,c.im);
}
2.
...
struct complex *cadd(struct complex *creal,struct complex *cim)
{
   complex *c=(complex *)malloc(sizeof(complex));
   c->real=creal->real+cim->real;
   c->im=creal->im+cim->im;
   return c;
}
struct complex *cmult(struct complex *creal,struct complex *cim)
{
   complex *c=(complex *)malloc(sizeof(complex));
   c->real=creal->real*cim->real-creal->im*cim->im;
   c->im=creal->real*cim->im+creal->im*cim->real;
   return c;
}
int main()
{
   ...
   c=cadd(&a,&b);
   printf("Add result:%d%+di\n",c->real,c->im);
   free(c);
   c=cmult(&a,&b);
   printf("Multip result:%d%+di\n",c->real,c->im);
   free(c);
}