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

在这里插入图片描述
在这里插入图片描述
代码:

#include <stdio.h>
#include <math.h> 
void put(double a1, double b1, double a2, double b2, double up, double down, char op)
{
 if (b1 < 0 && b2 < 0)printf("(%.1lf-%.1lfi) %c (%.1lf-%.1lfi) = ", a1, fabs(b1), op, a2, fabs(b2));
 else if (b1 < 0) printf("(%.1lf-%.1lfi) %c (%.1lf+%.1lfi) = ", a1, fabs(b1), op, a2, b2);
 else if (b2 < 0) printf("(%.1lf+%.1lfi) %c (%.1lf-%.1lfi) = ", a1, b1, op, a2, fabs(b2));
 else printf("(%.1lf+%.1lfi) %c (%.1lf+%.1lfi) = ", a1, b1, op, a2, b2);
 if (fabs(up) < 0.1 && fabs(down) < 0.1) printf("%.1lf\n", 0);
 else if (fabs(up) < 0.1) printf("%.1lfi\n",down);
 else if (fabs(down) < 0.1) printf("%.1lf\n", up);
 else if (down > 0) printf("%.1lf+%.1lfi\n", up, down);
 else if (down < 0) printf("%.1lf%.1lfi\n", up, down);
}
void sum(double a1, double b1, double a2, double b2)
{
 double up = a1 + a2;
 double down = b1 + b2;
 put(a1, b1, a2, b2, up, down, '+');
}
void sub(double a1, double b1, double a2, double b2)
{
 double up = a1 - a2;
 double down = b1 - b2;
 put(a1, b1, a2, b2, up, down, '-');
}
void mul(double a1, double b1, double a2, double b2)
{
 double up = a1 * a2 - b1 * b2;
 double down = a1 * b2 + a2 * b1;
 put(a1, b1, a2, b2, up, down, '*');
}
void dev(double a1, double b1, double a2, double b2)
{
 double up = (a1 * a2 + b1 * b2) / (a2 * a2 + b2 * b2);
 double down = (a2 * b1 - a1 * b2) / (a2 * a2 + b2 * b2); 
 put(a1, b1, a2, b2, up, down, '/'); 
}
int main()
{
 double a1 = 0, b1 = 0, a2 = 0, b2 = 0;
 scanf("%lf %lf %lf %lf", &a1, &b1, &a2, &b2);
 sum(a1, b1, a2, b2);
 sub(a1, b1, a2, b2);
 mul(a1, b1, a2, b2);
 dev(a1, b1, a2, b2);
 return 0;
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值