#####习题9-2 计算两个复数之积 (15分)

本题要求实现一个计算复数之积的简单函数。

函数接口定义:
struct complex multiply(struct complex x, struct complex y);

其中struct complex是复数结构体,其定义如下:

struct complex{
int real;
int imag;
};

裁判测试程序样例:
#include <stdio.h>

struct complex{
int real;
int imag;
};

struct complex multiply(struct complex x, struct complex y);

int main()
{
struct complex product, x, y;

scanf("%d%d%d%d", &x.real, &x.imag, &y.real, &y.imag);
product = multiply(x, y);
printf("(%d+%di) * (%d+%di) = %d + %di\n", 
        x.real, x.imag, y.real, y.imag, product.real, product.imag);

return 0;

}

/* 你的代码将被嵌在这里 */

输入样例:
3 4 5 6

输出样例:
(3+4i) * (5+6i) = -9 + 38i

复数乘积的运算法则

规定复数的乘法按照以下的法则进行:

设z1=a+bi,z2=c+di(a、b、c、d∈R)是任意两个复数,那么它们的积(a+bi)(c+di)=(ac-bd)+(bc+ad)i。

其实就是把两个复数相乘,类似两个多项式相乘,展开得: ac+adi+bci+bdi2,因为i2=-1,所以结果是(ac-bd)+(bc+ad)i 。两个复数的积仍然是一个复数。

在这里插入代码片
struct complex multiply(struct complex x,struct complex y){
    struct complex u;
    u.real=x.real*y.real-x.imag*y.imag;
    u.imag=x.real*y.imag+x.imag*y.real;
    return u;
};
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白鼠666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值