天天看點

C語言結構體複數四則運算

/*2021/3/10*/ 
#include<stdio.h>
typedef struct{
	double a;
	double b;	
}Complex;
void InitC(Complex &C) 
{
	scanf("%lf%lf",&C.a,&C.b);	
}
Complex mulC(Complex C1,Complex C2)
{
	Complex C3;
	C3.a=C1.a*C2.a-C1.b*C2.b;
	C3.b=C1.a*C2.b+C2.a*C1.b;
	return C3;
}
Complex divC(Complex C1,Complex C2)
{
    Complex C4;
    C4.a=1.0*(C1.a*C2.a+C1.b*C2.b)/(C2.a*C2.a+C2.b*C2.b);
    C4.b=1.0*(C1.b*C2.a-C1.a*C2.b)/(C2.a*C2.a+C2.b*C2.b);
    return C4;
}
Complex add(Complex C1,Complex C2)
{
	Complex C5;
	C5.a=C1.a+C2.a;
	C5.b=C1.b+C2.b;
	return C5;
}
Complex minus(Complex C1,Complex C2)
{
	Complex C6;
	C6.a=C1.a-C2.a;
	C6.b=C1.b-C2.b;
	return C6;
}
int main()
{
	Complex C1,C2,C3,C4,C5,C6;
	
	printf("結構體實作複數運算的+、-、*、/(縱向輸入)\n");
	
	InitC(C1);
	InitC(C2);
	
	
	
	

	/*乘法*/
	C3=mulC(C1,C2);
	if(C3.b>0)
	{
		printf("\n乘法:%.2f+%.2fi",C3.a,C3.b);
	}
	else if(C3.b==0)
	{
		printf("\n乘法:%.2f",C3.a);
	}
	else
	{
		printf("\n乘法:%.2f%.2fi",C3.a,C3.b);
	}
	/*除法*/ 
	
	if(C4.a==0.00&&C4.b==0.00) 
	{
		printf("\n除法;0");
	}
	else
	{ 
	  C4=divC(C1,C2);
	  if(C4.b>0)
	  {
		 printf("\n除法:%.2f+%.2fi",C4.a,C4.b);
      }
	  else if(C4.b==0)
	  {  
		printf("\n除法:%.2f",C4.a);
	  }
	  else
	  {
		  printf("\n除法:%.2f%.2fi",C4.a,C4.b);
	  }
	} 
	
	/*加法*/
	C5=add(C1,C2);
		if(C5.b>0)
	{
		printf("\n加法:%.2f+%.2fi",C5.a,C5.b);
	}
	else if(C5.b==0)
	{
		printf("\n加法:%.2f",C5.a);
	}
	else
	{
		printf("\n加法:%.2f%.2fi",C5.a,C5.b);
	}
	/*減法 */	
	C6=minus(C1,C2);
		if(C6.b>0)
	{
		printf("\n減法:%.2f+%.2fi",C6.a,C6.b);
	}
	else if(C6.b==0)
	{
		printf("\n減法:%.2f",C6.a);
	}
	else
	{
		printf("\n減法:%.2f% .2fi",C6.a,C6.b);
	}
	return 0;
	
}
	
           

繼續閱讀