9-2 计算两个复数之积

// 计算两个复数之积 
#include <stdio.h>
#include <math.h>

struct Complex {
	double real;
	double imag;
};

void Multiply(struct Complex *p, struct Complex c1, struct Complex c2);

void Show(struct Complex c);

int main(void)
{
	struct Complex c1,c2,c3;
	printf("请输入第一个复数的实部和虚部: ");
	scanf("%lf%lf",&c1.real,&c1.imag);
	printf("请输入第二个复数的实部和虚部: ");
	scanf("%lf%lf",&c2.real,&c2.imag);
	
	Multiply(&c3,c1,c2);	//复数相乘 
	
	Show(c3);				//显示结果 
	
	return 0;
}

void Multiply(struct Complex *p, struct Complex c1, struct Complex c2)
{
	p->real = c1.real*c2.real-c1.imag*c2.imag;
	p->imag = c1.real*c2.imag+c1.imag*c2.real;
}

void Show(struct Complex c)
{	
	// 实部和虚部均为0 
	if (fabs(c.real)<1e-4&&fabs(c.imag)<1e-4)
	{
		printf("两数相乘结果为: 0\n");
	}
	// 实部为0,虚部不为0 
	else if (fabs(c.real)<1e-4)
	{
		printf("两数相乘结果为: %fi\n",c.imag);
	}
	// 实部不为0,虚部为0
	else if (fabs(c.imag)<1e-4)
	{
		printf("两数相乘结果为: %f\n",c.real);
	} 
	// 实部不为0,虚部大于0 
	else if (c.imag>0)
	{
		printf("两数相乘结果为: %f+%fi\n",c.real,c.imag);
	} 
	// 实部不为0,虚部小于0
	else 
	{
		printf("两数相乘结果为: %f%fi\n",c.real,c.imag);
	}
}

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 两个复数的乘可以通过以下公式计算: (a+bi)×(c+di) = (ac-bd)+(ad+bc)i 其中,a、b、c、d均为实数,i为虚数单位。 例如,计算(2+3i)×(4+5i)的乘,可以按照上述公式进行计算: (2+3i)×(4+5i) = (2×4-3×5)+(2×5+3×4)i = (-7+22i) 因此,(2+3i)和(4+5i)的乘-7+22i。 ### 回答2: 在计算复数时,需要使用以下公式: 设复数 $z_1=a+bi$,$z_2=c+di$ ,则 $z_1\times z_2=(ac-bd)+(ad+bc)i$ 首先,我们要将题目中给出的两个复数表示成 $a+bi$ 的形式,方便后续计算。 假设第一个复数是 $z_1=4+3i$,第二个复数是 $z_2=2+5i$,则有: $a_1=4$,$b_1=3$,$a_2=2$,$b_2=5$ 将这些值代入公式中,可以得到: $z_1\times z_2=(4\times 2-3\times 5)+(4\times 5+3\times 2)i=-7+22i$ 因此,两个复数是 $-7+22i$。 需要注意的是,当计算复数的乘时,要遵循数学中的分配律、结合律和交换律等基本运算法则。另外,要注意在计算过程中保留正确的符号和精度,避免出现计算错误的情况。 ### 回答3: 计算两个复数的方法就是将它们分别表示为实数和虚数的和,然后进行乘法运算。具体地说,如果有两个复数z1=a1+b1i和z2=a2+b2i,其中a1、a2、b1、b2均为实数,i是虚数单位(i²=-1),那么它们的可以表示为: z1z2 = (a1+b1i)(a2+b2i) = a1a2 + a1b2i + b1a2i + b1b2i² = a1a2 + (a1b2 + b1a2)i - b1b2 其中最后一步用到了虚数单位的平方等于-1的性质。这个表达式可以看做是一个实数部分、一个虚数部分和一个常数项组成的。因此,两个复数也是一个复数,可以表示为实部加上虚部所得到的形式:z1z2 = c + di。其中: 实部c = a1a2 - b1b2 虚部d = a1b2 + b1a2 需要注意的是,乘法运算不满足交换律,即z1z2与z2z1可能不相等,但满足结合律和分配律。因此,在进行复数乘法时,需要按照上述公式严格按照顺序进行计算

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值