7-32 复数四则运算

7-32 复数四则运算 (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:你要考虑当一个浮点数小于0.05,大于-0.05,将会当成0来处理。2:这道题可以当虚数为0的时候,排除虚数,只输出实数就行了。3:这道题考虑四则运算去分情况考虑就行了。

代码:

#include<stdio.h>
double lemon(double a,double b)
{
	if(b<0)//考虑负数的问题
	{
		printf("(%.1lf%.1lfi)",a,b);
	}
	else
	printf("(%.1lf+%.1lfi)",a,b);
}
double lemon1(double a,double b)
{
	if(a>=-0.05 && a<=0.05 && b>=-0.05 && b<=0.05)//考虑实数与虚数
	{
		printf("0.0");
	}
	else if(a>=-0.05 && a<=0.05)//只考虑实数
	{
		printf("%.1lfi",b);
	}
	else if(b>=-0.05 && b<=0.05)//只考虑虚数
	{
		printf("%.1lf",a);
	}
	else if(b<0)//当虚数小于0,就输出
	{
		printf("%.1lf%.1lfi",a,b);
	}
	else
	{
		printf("%.1lf+%.1lfi",a,b);
	}
}
int main()
{
	double a,b,c,d,m,n;
		scanf("%lf %lf %lf %lf",&a,&b,&c,&d);
	m=a+c;n=b+d;//加法运算
	lemon(a,b);
	printf(" + ");
	lemon(c,d);
	printf(" = ");
	lemon1(m,n);
	printf("\n");
	 
	 
	 
	 
	m=a-c;n=b-d;//减法运算
	lemon(a,b);
	printf(" - ");
	lemon(c,d);
	printf(" = ");
	lemon1(m,n);
	printf("\n");
	
	
	
	
	m=a*c-b*d;n=a*d+b*c;//乘法运算
	lemon(a,b);
	printf(" * ");
	lemon(c,d);
	printf(" = ");
	lemon1(m,n);
	printf("\n");
	
	
	
	
	
	m=(a*c+b*d)/(c*c+d*d);n=(b*c-a*d)/(c*c+d*d);//除法运算
	lemon(a,b);
	printf(" / ");
	lemon(c,d);
	printf(" = ");
	lemon1(m,n);
} 

测试样例点:

在这里插入图片描述

发布了17 篇原创文章 · 获赞 3 · 访问量 3701

猜你喜欢

转载自blog.csdn.net/xiaosuC/article/details/104055060
今日推荐