精华内容
下载资源
问答
  • 接下来分享复数的定义和四则运算公式复数的定义复数是形如a+bi的数。式中a,b为实数,i是一个满足i^2=-1的数,因为任何实数的平方不等于-1,所以i不是实数,而是实数以外的新的数。在复数a+bi中,a称为复数的...

    我们把形如z=a+bi(a,b均为实数)的数称为复数,其中a称为实部,b称为虚部,i称为虚数单位。接下来分享复数的定义和四则运算公式。

    964ef255a536fbe0993e48e9804fd444.png

    复数的定义

    复数是形如a+bi的数。式中a,b为实数,i是一个满足i^2=-1的数,因为任何实数的平方不等于-1,所以i不是实数,而是实数以外的新的数。

    在复数a+bi中,a称为复数的实部,b称为复数的虚部,i称为虚数单位。当虚部等于零时,这个复数就是实数;当虚部不等于零时,这个复数称为虚数,虚数的实部如果等于零,则称为纯虚数。由上可知,复数集包含了实数集,因而是实数集的扩张。复数常用形式z=a+bi叫做代数式。

    复数的四则运算公式

    (1)加法运算

    设z1=a+bi,z2=c+di是任意两个复数,它的实部是原来两个复数实部的和,它的虚部是原来两个虚部的和:(a+bi)±(c+di)=(a±c)+(b±d)i。

    (2)乘法运算

    设z1=a+bi,z2=c+di是任意两个复数,则:(a+bi)(c+di)=(ac-bd)+(bc+ad)i。

    其实就是把两个复数相乘,类似两个多项式相乘,结果中i2=-1,把实部与虚部分别合并。两个复数的积仍然是一个复数。

    (3)除法运算

    复数除法定义:满足(c+di)(x+yi)=(a+bi)的复数x+yi(x,y∈R)叫复数a+bi除以复数c+di的商。

    运算方法:可以把除法换算成乘法做,将分子分母同时乘上分母的共轭复数,再用乘法运算。

    复数的基本性质

    (1)共轭复数所对应的点关于实轴对称。

    (2)两个复数:x+yi与x-yi称为共轭复数,它们的实部相等,虚部互为相反数。

    (3)在复平面上,表示两个共轭复数的点关于X轴对称。

    展开全文
  • 复数四则运算源代码

    2020-12-08 10:30:30
    #include&ltstdio.h&gt#include&ltstdlib.h&gttypedef struct Complex{float real;...Complex InitComplex(float a,float b) /*给复数的实部和虚部复制,并返回复数。*/{Complex c;c.real=a;c.image...

    #include&ltstdio.h&gt

    #include&ltstdlib.h&gt

    typedef struct Complex

    {

    float real;

    float image;

    }Complex;

    Complex InitComplex(float a,float b) /*给复数的实部和虚部复制,并返回复数。*/

    {

    Complex c;

    c.real=a;

    c.image=b;

    return c;

    }

    Complex Add(Complex c1,Complex c2)

    {/*两个复数相加。公式:(a+bi)+(c+di)=(a+b)+(c+d)i。*/

    Complex sum;

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

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

    return sum;

    }

    Complex Sub(Complex c1,Complex c2)

    {/*两个复数相减。公式:(a+bi)-(c+di)=(a-b)+(c-d)i。 */

    Complex dif;

    dif.real=c1.real-c2.real ;

    dif.image=c1.image-c2.image ;

    return dif;

    }

    Complex Mul(Complex c1,Complex c2)

    {/*两个复数相乘。公式:(a+bi)*(c+di)=(ac-bd)+(ad+bc)i。 */

    Complex product;

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

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

    return product;

    }

    Complex Div(Complex c1,Complex c2)

    {/*两个复数相除,利用分母的共轭复数来通分(i*i=-1)。

    公式:(a+bi)/(c+di)=(a+bi)*(c-di)/((c+di)*(c-di))=(a+bi)*(c-di)/(c*c+d*d),其中c+di不等于0。 */

    Complex quotient;

    quotient.real=0;

    quotient.image=0;

    if (c2.real&lt1e-38&&c2.image&lt1e-38)

    {printf("c2 is 0!error!\n");return quotient;}

    quotient.real=

    (c1.real*c2.real+c1.image*c2.image)/(c2.real*c2.real+c2.image*c2.image);

    quotient.image=

    (c1.image*c2.real-c1.real*c2.image)/(c2.real*c2.real+c2.image*c2.image);

    return quotient;

    }

    float GetReal(Complex c)

    {/*取复数实部 */

    return c.real;

    }

    float GetImag(Complex c)

    {/*取复数虚部 */

    return c.image;

    }

    void Print_C(Complex c)

    {/*复数输出*/

    if(GetImag(c)==0.0) printf("%5.2f\n",GetReal(c));

    else if(GetReal(c)==0.0) printf("%5.2fi\n",GetImag(c));

    else printf("%5.2f+%5.2fi\n",GetReal(c),GetImag(c));

    }

    void main()

    {

    Complex z1,z2,sum,dif,pro,quo;

    float e1,e2;

    char sym;

    printf("Input the operation symbol(+,-,*,/):");

    scanf("%c",&sym);/* ******************提示输入需要进行的四则运算。 */

    printf("Input z1 like: 3.0+2.1i or -3.0+-2.1i\nz1=");

    scanf("%f+%fi",&e1,&e2);

    z1=InitComplex(e1,e2);/* **********提示输入复数z1,并存入变量中。 */

    printf("Input z2 like: 3.0+2.1i or -3.0+-2.1i\nz2=");

    scanf("%f+%fi",&e1,&e2);

    z2=InitComplex(e1,e2);/* ****提示输入复数z2,并存入变量中。 */

    switch(sym)

    {

    case '+': sum=Add(z1,z2);Print_C(sum);break;

    case '-': dif=Sub(z1,z2);Print_C(dif);break;

    case '*': pro=Mul(z1,z2);Print_C(pro);break;

    case '/': quo=Div(z1,z2);Print_C(quo);break;

    default: printf("error symbol!!");

    /********如果输入了"+、-、*、/"以外的字符,则提示出错。 */

    }

    }

    展开全文
  • C语言 复数四则运算

    千次阅读 2019-06-13 00:52:55
    #include<stdio.h> #include<math.h> struct st_1{ float a,b,c,d; }stu_1; struct st_2{ float shi,fu; }stu_2; void soild_jia(struct st_1 m,struct st_2 n) { n.shi=m.a+m.c;... n.fu=m....

     

     

     

    #include<stdio.h>
    #include<math.h>
    struct st_1{
    	float a,b,c,d;
    }stu_1;
    struct st_2{
    	float shi,fu;
    }stu_2;
    void soild_jia(struct st_1 m,struct st_2 n)
    {
    	n.shi=m.a+m.c;
    	n.fu=m.b+m.d;
    	
    	if(fabs(n.shi)<0.05 && fabs(n.fu)>=0.05)
    	{
    		if(n.fu>0)
    		printf("(%.1f+%.1fi) + (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    		else if(n.fu<0)
    		{
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) + (%.1f%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) + (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) + (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) + (%.1f%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    		}
    		
    	}
    	else if(fabs(n.fu)<0.05&&fabs(n.shi)>=0.05)            //pass
    	{
    		
    		if(m.b>0&&m.d>0)
    		printf("(%.1f+%.1fi) + (%.1f+%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b<0&&m.d<0)
    		printf("(%.1f%.1fi) + (%.1f%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b<0&&m.d>0) 
    		printf("(%.1f%.1fi) + (%.1f+%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b>0&&m.d<0)
    		printf("(%.1f+%.1fi) + (%.1f%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    	}
    	else if(fabs(n.fu)<0.05&&fabs(n.shi)<0.05)             //pass
    	{
    		if(m.b<0&&m.d<0)
    		printf("(%.1f%.1fi) + (%.1f%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b>0&&m.d>0)
    		printf("(%.1f+%.1fi) + (%.1f+%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b>0&&m.d<0)
    		printf("(%.1f+%.1fi) + (%.1f%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b<0&&m.d>0)
    		printf("(%.1f%.1fi) + (%.1f+%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    	}
    	else if(fabs(n.fu)>=0.05&&fabs(n.shi)>=0.05)
    	{
    		if(n.shi>0&&n.fu>0)
    		{	
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) + (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) + (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) + (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) + (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    		}
    		else if(n.shi>0&&n.fu<0)
    		{
    			if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) + (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) + (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) + (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) + (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    		}
    		else if(n.shi<0&&n.fu>0)
    		{
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) + (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) + (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) + (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) + (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    		}
    		else if(n.shi<0&&n.fu<0)
    		{
    			if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) + (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) + (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) + (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) + (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    		}
    	}
    	
    }
    void soild_jian(struct st_1 m,struct st_2 n)
    {
    	n.shi=m.a-m.c;
    	n.fu=m.b-m.d;
    	if(fabs(n.shi)<0.05 && fabs(n.fu)>=0.05)                                  
    	{
    		if(n.fu>0)
    		printf("(%.1f+%.1fi) - (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    		else if(n.fu<0)
    		{
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) - (%.1f%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) - (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) - (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) - (%.1f%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    		}
    		
    	}
    	else if(fabs(n.fu)<0.05&&fabs(n.shi)>=0.05)            //pass
    	{
    		if    (m.b>0&&m.d>0)
    		printf("(%.1f+%.1fi) - (%.1f+%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b<0&&m.d<0)
    		printf("(%.1f%.1fi) - (%.1f%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b<0&&m.d>0) 
    		printf("(%.1f%.1fi) - (%.1f+%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b>0&&m.d<0)
    		printf("(%.1f+%.1fi) - (%.1f%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    	}
    	else if(fabs(n.fu)<0.05&&fabs(n.shi)<0.05)             //pass
    	{
    		if(m.b<0&&m.d<0)
    		printf("(%.1f%.1fi) - (%.1f%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b>0&&m.d>0)
    		printf("(%.1f+%.1fi) - (%.1f+%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b>0&&m.d<0)
    		printf("(%.1f+%.1fi) - (%.1f%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b<0&&m.d>0)
    		printf("(%.1f%.1fi) - (%.1f+%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    	}
    	else if(fabs(n.fu)>=0.05&&fabs(n.shi)>=0.05)
    	{
    		if(n.shi>0&&n.fu>0)
    		{	
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) - (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) - (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) - (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) - (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    		}
    		else if(n.shi>0&&n.fu<0)
    		{
    			if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) - (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) - (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) - (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) - (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    		}
    		else if(n.shi<0&&n.fu>0)
    		{
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) - (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) - (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) - (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) - (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    		}
    		else if(n.shi<0&&n.fu<0)
    		{
    			if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) - (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) - (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) - (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) - (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    		}
    	}
    }
    void soild_cheng(struct st_1 m,struct st_2 n)
    {
    	n.shi=m.a*m.c-m.b*m.d;
    	n.fu=m.a*m.d+m.b*m.c;
    	if(fabs(n.shi)<0.05 && fabs(n.fu)>=0.05)                                 
    	{
    		if(n.fu>0)
    		printf("(%.1f+%.1fi) * (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    		else if(n.fu<0)
    		{
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) * (%.1f%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) * (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) * (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) * (%.1f%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    		}
    		
    	}
    	else if(fabs(n.fu)<0.05&&fabs(n.shi)>=0.05)            //pass
    	{
    		
    		if(m.b>0&&m.d>0)
    		printf("(%.1f+%.1fi) * (%.1f+%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b<0&&m.d<0)
    		printf("(%.1f%.1fi) * (%.1f%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b<0&&m.d>0) 
    		printf("(%.1f%.1fi) * (%.1f+%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b>0&&m.d<0)
    		printf("(%.1f+%.1fi) * (%.1f%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    	}
    	else if(fabs(n.fu)<0.05&&fabs(n.shi)<0.05)             //pass
    	{
    		if(m.b<0&&m.d<0)
    		printf("(%.1f%.1fi) * (%.1f%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b>0&&m.d>0)
    		printf("(%.1f+%.1fi) * (%.1f+%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b>0&&m.d<0)
    		printf("(%.1f+%.1fi) * (%.1f%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b<0&&m.d>0)
    		printf("(%.1f%.1fi) * (%.1f+%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    	}
    	else if(fabs(n.fu)>=0.05&&fabs(n.shi)>=0.05)
    	{
    		if(n.shi>0&&n.fu>0)
    		{	
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) * (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) * (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) * (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) * (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    		}
    		else if(n.shi>0&&n.fu<0)
    		{
    			if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) * (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) * (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) * (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) * (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    		}
    		else if(n.shi<0&&n.fu>0)
    		{
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) * (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) * (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) * (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) * (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    		}
    		else if(n.shi<0&&n.fu<0)
    		{
    			if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) * (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) * (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) * (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) * (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    		}
    	}
    }
    void soild_chu(struct st_1 m,struct st_2 n)
    {
    	n.shi=(m.a*m.c+m.b*m.d)/(m.c*m.c+m.d*m.d);
    	n.fu=(m.b*m.c-m.a*m.d)/(m.c*m.c+m.d*m.d);
    	if(fabs(n.shi)<0.05 && fabs(n.fu)>=0.05)                                 
    	{
    		if(n.fu>0)
    		printf("(%.1f+%.1fi) / (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    		else if(n.fu<0)
    		{
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) / (%.1f%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) / (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) / (%.1f+%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) / (%.1f%.1fi) = %.1fi\n",m.a,m.b,m.c,m.d,n.fu);
    		}
    		
    	}
    	else if(fabs(n.fu)<0.05&&fabs(n.shi)>=0.05)            //pass
    	{
    		
    		if(m.b>0&&m.d>0)
    		printf("(%.1f+%.1fi) / (%.1f+%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b<0&&m.d<0)
    		printf("(%.1f%.1fi) / (%.1f%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b<0&&m.d>0) 
    		printf("(%.1f%.1fi) / (%.1f+%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    		else if(m.b>0&&m.d<0)
    		printf("(%.1f+%.1fi) / (%.1f%.1fi) = %.1f\n",m.a,m.b,m.c,m.d,n.shi);
    	}
    	else if(fabs(n.fu)<0.05&&fabs(n.shi)<0.05)             //pass
    	{
    		if(m.b<0&&m.d<0)
    		printf("(%.1f%.1fi) / (%.1f%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b>0&&m.d>0)
    		printf("(%.1f+%.1fi) / (%.1f+%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b>0&&m.d<0)
    		printf("(%.1f+%.1fi) / (%.1f%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    		else if(m.b<0&&m.d>0)
    		printf("(%.1f%.1fi) / (%.1f+%.1fi) = 0.0\n",m.a,m.b,m.c,m.d);
    	}
    	else if(fabs(n.fu)>=0.05&&fabs(n.shi)>=0.05)
    	{
    		if(n.shi>0&&n.fu>0)
    		{	
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) / (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) / (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) / (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) / (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    		}
    		else if(n.shi>0&&n.fu<0)
    		{
    			if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) / (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) / (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) / (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) / (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    		}
    		else if(n.shi<0&&n.fu>0)
    		{
    			if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) / (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) / (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) / (%.1f%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) / (%.1f+%.1fi) = %.1f+%.1fi\n",m.a,m.b,m.c,m.d);
    		}
    		else if(n.shi<0&&n.fu<0)
    		{
    			if(m.b>0&&m.d>0)
    			printf("(%.1f+%.1fi) / (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d<0)
    			printf("(%.1f%.1fi) / (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b>0&&m.d<0)
    			printf("(%.1f+%.1fi) / (%.1f%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    			else if(m.b<0&&m.d>0)
    			printf("(%.1f%.1fi) / (%.1f+%.1fi) = %.1f%.1fi\n",m.a,m.b,m.c,m.d,n.shi,n.fu);
    		}
    	}
    }
    void input()
    {
    	scanf("%f %f %f %f",&stu_1.a,&stu_1.b,&stu_1.c,&stu_1.d);
    }
    void print()
    {
    	printf("%.1f %.1f %.1f %.1f",stu_1.a,stu_1.b,stu_1.c,stu_1.c,stu_1.d);
    } 
    main()
    {	
    	input();
    	soild_jia(stu_1,stu_2);
    	soild_jian(stu_1,stu_2);
    	soild_cheng(stu_1,stu_2);
    	soild_chu(stu_1,stu_2);
    }

     

    展开全文
  • 7-3 复数四则运算 (15 分)

    千次阅读 2019-09-22 21:37:36
    7-3 复数四则运算 (15 分) 本题要求编写程序,计算2个复数的和、差、积、商。 输入格式: 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部。题目保证C2不为0。 输出格式: 分别在4行...

    7-3 复数四则运算 (15 分)

    本题要求编写程序,计算2个复数的和、差、积、商。

    输入格式:
    输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部。题目保证C2不为0。

    输出格式:
    分别在4行中按照(a1+b1i) 运算符 (a2+b2i) = 结果的格式顺序输出2个复数的和、差、积、商,数字精确到小数点后1位。如果结果的实部或者虚部为0,则不输出。如果结果为0,则输出0.0。

    输入样例1:
    2 3.08 -2.04 5.06
    输出样例1:
    (2.0+3.1i) + (-2.0+5.1i) = 8.1i
    (2.0+3.1i) - (-2.0+5.1i) = 4.0-2.0i
    (2.0+3.1i) * (-2.0+5.1i) = -19.7+3.8i
    (2.0+3.1i) / (-2.0+5.1i) = 0.4-0.6i
    输入样例2:
    1 1 -1 -1.01
    输出样例2:
    (1.0+1.0i) + (-1.0-1.0i) = 0.0
    (1.0+1.0i) - (-1.0-1.0i) = 2.0+2.0i
    (1.0+1.0i) * (-1.0-1.0i) = -2.0i
    (1.0+1.0i) / (-1.0-1.0i) = -1.0

    7-3 复数四则运算 (15 分)

    #include<stdio.h>
    void shizi(double x,double y);		//负责打印式子
    void result(double x,double y);		//负责打印结果
    struct Love{		
    	double shi,xu;	//表示实部,虚部
    }love1,love2;
    int main()
    {	
    	scanf("%lf%lf%lf%lf",&love1.shi,&love1.xu,&love2.shi,&love2.xu);
    	//下面的计算根据复数的实部与虚部计算公式:
    	//求加法的实部与虚部值
    	double jia_shi = love1.shi + love2.shi;
    	double jia_xu  = love1.xu  + love2.xu;
    
    	//求减法的实部与虚部值
    	double jian_shi = love1.shi - love2.shi;
    	double jian_xu  = love1.xu  - love2.xu;
    
    	//求乘法的实部与虚部值
    	double cheng_shi = love1.shi*love2.shi-love1.xu*love2.xu;
    	double cheng_xu  = love1.xu*love2.shi+love1.shi*love2.xu;
    	
    	//求除法的实部与虚部值
    	double chu_shi = (love1.shi*love2.shi+love1.xu*love2.xu)/(love2.shi*love2.shi+love2.xu*love2.xu);
    	double chu_xu  = (love1.xu*love2.shi-love1.shi*love2.xu)/(love2.shi*love2.shi+love2.xu*love2.xu);
    	
    	//因为题目的输出结果要分多种情况,那就在函数里来判断情况输出吧
    	
    	//加法
    	shizi(love1.shi,love1.xu);	//式子
    	printf(" + ");
    	shizi(love2.shi,love2.xu);	//式子
    	printf(" = ");
    	result(jia_shi,jia_xu);		//结果
    
    	//减法
    	shizi(love1.shi,love1.xu);	//式子
    	printf(" - ");
    	shizi(love2.shi,love2.xu);	//式子
    	printf(" = ");
    	result(jian_shi,jian_xu);		//结果
    	
    	//乘法
    	shizi(love1.shi,love1.xu);	//式子
    	printf(" * ");
    	shizi(love2.shi,love2.xu);	//式子
    	printf(" = ");
    	result(cheng_shi,cheng_xu);		//结果
    
    	//除法
    	shizi(love1.shi,love1.xu);	//式子
    	printf(" / ");
    	shizi(love2.shi,love2.xu);	//式子
    	printf(" = ");
    	result(chu_shi,chu_xu);		//结果
    	return 0;
    }
    void shizi(double x,double y)		//负责打印式子
    {
    	if(y<0)							//虚部为负数的时候不用加'+'号
    		printf("(%.1lf%.1lfi)",x,y);
    	else
    		printf("(%.1lf+%.1lfi)",x,y);	//反之成立
    }
    void result(double rshi,double rxu)
    {	
    	//虚部不存在时,只需输出实部
    	if(rxu<=0.05&&rxu>=-0.05)	//其实这里也判断了两段都没有的情况,输出0.0
    		printf("%.1lf\n",rshi);
    	else if(rshi<=0.05&&rshi>=-0.05)	//实部不存在时,输出虚部单个即可
    		printf("%.1lfi\n",rxu);
    	else if(rxu<0)
    		printf("%.1lf%.1lfi\n",rshi,rxu);	//结果虚部为负数的时候不用加'+'号
    	else
    		printf("%.1lf+%.1lfi\n",rshi,rxu);	//反之成立
    }
    
    展开全文
  • 复数四则运算

    千次阅读 2019-02-04 11:55:03
    复数四则运算 (15 分) 本题要求编写程序,计算2个复数的和、差、积、商。 输入格式: 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部。题目保证C2不为0。 输出格式: 分别...
  • 复数四则运算——C++实现

    千次阅读 2020-05-04 10:15:44
    复数四则运算法则: 加法:(a+bi)+(c+di)=(a+c)+(b+d)i 减法:(a+b)-(c+di)=(a-c)+(b-d)i 乘法:(a+bi)(c+di)=(ac-bd)+(bc+a*d)i 除法:(a+bi)/(c+di)=((ac+bd)+(bc-ad)i)/(cc+dd) **注意:**在复数除法运算中,...
  • 本题要求编写程序,计算2个复数的和、差、积、商。输入格式:输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部。题目保证C2不为0。输出格式:分别在4行中按照(a1+b1i) 运算符 (a2+b2i...
  • PTA习题 7-36 复数四则运算 (15分)

    千次阅读 2020-04-26 09:58:55
    本题要求编写程序,计算2个复数的和、差、积、商。 输入格式: 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部。题目保证C2不为0。 输出格式: 分别在4行中按照(a1+b1i) 运算符...
  • 复数四则运算

    2016-03-18 00:46:31
    printf("**************两个复数之间的运算**************\n"); printf("请按照标准形式 a+bi 输入复数,其中a,b不可缺省\n"); struct pluar num1 = { 0 }; struct pluar num2 = { 0 }; char sym[2]; scanf("%...
  • 复数四则运算规定为:(a+bi)+(c+di)=(a+c)+(b+d)i,(a+bi)-(c+di)=(a-c)+(b-d)i,(a+bi)?(c+di)=(ac-bd)+(bc+ad)i,(c与d不同时为零)(a+bi)÷(c+di)=[(ac+bd) / (c^2+d^2)]+[(bc-ad) / ...
  • 算法提高 6-17复数四则运算 时间限制:1.0s 内存限制:512.0MB  设计复数库,实现基本的复数加减乘除运算。  输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符分隔;输出时按a+bi的格式在屏幕上...
  • 高数 复数四则运算

    万次阅读 2019-11-07 09:01:07
    System.out.println("复数四则运算的例子:"); System.out.println(String.format("加发: (%s) + (%s) = (%s)", ab, cd, ab.add(cd))); System.out.println(String.format("减法: (%s) - (%s) = (%s)", ab, cd,...
  • 韶 关 学 院 学 生 实 验 报 告 册 实验课程名称数据结构与算法 实验项目名称实验一 抽象数据类型 复数四则运算 实验类型 打 基础 综合 设计 院 系信息工程学院计算机系 专 业* 姓 名* 学 号* 指导老师陈正铭 韶关...
  • 【新教材】7.2.2 复数的乘除运算教学设计(人教A版)教材分析复数四则运算是本章的重点,复数代数形式的乘法与多项式乘法是类似的,不同的是即必须在所得结果中把i2换成-1,再把实部、虚部分别合并.复数的除法运算...
  • 1、一个复数类Complex由两部分组成:实部real和虚部imaginary,两个复数可以进行加减乘除四则运算。  试设计这个复数类,然后在另一个类的程序入口演示。 public class Test { public static void main(String[]...
  • 复数四则运算 (15 分)

    2021-09-03 13:05:15
    7-76 复数四则运算 (15 分) 本题要求编写程序,计算2个复数的和、差、积、商。 输入格式: 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部。题目保证C2不为0。 输出格式: ...
  • 【2039】复数四则运算

    2019-10-09 07:55:13
    输入两个复数和一个运算符,计算后将结果以复数形式输出,计算结果均保留两位小数。(注意:求除法时,除数的实部与虚部若同时为0,输出'error!')。 说明:复数的一般形式为,一个复数X=A+Bi,其中A、B就是它的...
  • 设计复数库,实现基本的复数加减乘除运算。  输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符分隔;输出时按a+bi的格式在屏幕上打印结果。参加样例输入和样例输出。  注意考虑特殊情况,无法计算...
  • 看到这篇博文的同学们,大多数都学习了之前的博文了,那么,现在,我们通过 “复数的实现” 这一项目,来复习一下之前所有博文中的重要知识点! 首先,我们现在来构建一个类,来存储这个复数的 实部 和 虚部: ...
  • 重载复数四则运算符 */ 25 // 重载加法运算符:(a+bi)+(c+di)=(a+c)+(b+d)i 26 static func +(_ x: Complex,_ y: Complex) -> Complex { 27 return Complex(real: (x.real + y.real), img: (x.img +...
  • 本题要求编写程序,计算2个复数的和、差、积、商。 输入格式: 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部。题目保证C2不为0。 输出格式: 分别在4行中按照(a1+b1i) 运算符...
  • 复数及其运算A)复数的表示(1).x=a+bi,其中a称为实部,b称为虚部(2)或写成复指数的形式:x=re^(iθ)其中r称为复数的模,又记为 |x| ;θ称为复数的幅度,又记为Arg(x)。且满足r=√(a^2+b^2) ,tanθ=b/a第一种方式适合...
  • 复数运算 P1103

    2019-12-10 17:41:13
    设有两个复数 和 ,他们的运算公式为:  要求:(1)定义一个结构体类型来描述复数。  (2)复数之间的加法、减法、乘法和除法分别用不用的函数来实现。  (3)必须使用结构体指针的方法把函数的计算结果返回。...
  • Java实现复数运算

    万次阅读 多人点赞 2019-07-21 21:44:59
    设有两个复数 和 ,他们的运算公式为: 要求:(1)定义一个结构体类型来描述复数。  (2)复数之间的加法、减法、乘法和除法分别用不用的函数来实现。  (3)必须使用结构体指针的方法把函数的计算结果返回。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,994
精华内容 1,597
关键字:

复数的四则运算公式