7-3 复数四则运算 (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:
2 3.08 -2.04 5.06
输出样例1:
(2.0+3.1i) + (-2.0+5.1i) = 8.1i
(2.0+3.1i) - (-2.0+5.1i) = 4.0-2.0i
(2.0+3.1i) * (-2.0+5.1i) = -19.7+3.8i
(2.0+3.1i) / (-2.0+5.1i) = 0.4-0.6i
输入样例2:
1 1 -1 -1.01
输出样例2:
(1.0+1.0i) + (-1.0-1.0i) = 0.0
(1.0+1.0i) - (-1.0-1.0i) = 2.0+2.0i
(1.0+1.0i) * (-1.0-1.0i) = -2.0i
(1.0+1.0i) / (-1.0-1.0i) = -1.0
**虽然没有全通过 **,但认为这道题还是比较直观的,难点应该是在于小数点精度的判断上。这道题还启示我写码时得安静,脑子不能乱(笑~
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#define MARK 0.05
int demo_1(double a, double b){
//一部分
if(abs(a) < MARK && abs(b) < MARK) printf("(0.0+0.0i)");
else if(abs(a) < MARK && abs(b) >= MARK) printf("(0.0+%0.1lfi)", b);
else {
if(abs(b) < MARK) printf("(%0.1lf+0.0i)", a);
else if(abs(b) >= MARK && b < 0) printf("(%0.1lf-%0.1lfi)", a, -b);
else printf("(%0.1lf+%0.1lfi)", a, b);
}
return 0;
}
int path_0(double i, double j){
// 固定过程 //
if (abs(i) < MARK && abs(j) < MARK) printf("0.0");
else if (abs(i) < MARK && abs(j) >= MARK) printf("%0.1lfi", j);
else {
//abs(i) >= 0.05
if (abs(j) < MARK) printf("%0.1lf", i);
else if (abs(j) >= MARK && j < 0) printf("%0.1lf-%0.1lfi", i, -j);
else printf("%0.1lf+%0.1lfi", i, j); }
return 0;
}
double rounding(double num){
//四舍五入
if (num > 0)
num = (int)(num * 10 + 0.5) / 10.0;
else num = (int)(num * 10 - 0.5) / 10.0;
return num;
}
//start to solve where is down by this.
int CL_add(double a, double b, double c, double d){
//加法
double i = a + c, j = b + d;
path_0(rounding(i), rounding(j)); puts("");
return 0;}
int CL_sub(double a, double b, double c, double d){
//减法
double i = a - c, j = b - d;
path_0(rounding(i), rounding(j)); puts("");
return 0;
}
int CL_mul(double a, double b, double c, double d){
//乘法
double i = a*c - b*d, j = a*d + b*c; path_0(rounding(i),rounding(j)); puts("");
return 0;
}
int CL_div(double a, double b, double c, double d){
//除法
//double i = (a*c + b*d)/(c*c + d*d), j = (b*c - a*d)/(c*c + d*d);
path_0(rounding((a * c + b * d) / (c * c + d * d)), rounding((b * c - a * d) / (c * c + d * d))); puts("");
return 0;
}
//divide into four parts
int main(){
double a1, a2, b1, b2;
scanf("%lf%lf%lf%lf", &a1, &b1, &a2, &b2);
demo_1(a1,b1); printf(" + "); demo_1(a2,b2); printf(" = "); CL_add(a1,b1,a2,b2);
demo_1(a1, b1); printf(" - "); demo_1(a2, b2); printf(" = "); CL_sub(a1,b1,a2,b2);
demo_1(a1, b1); printf(" * "); demo_1(a2, b2); printf(" = "); CL_mul(a1,b1,a2,b2);
demo_1(a1, b1); printf(" / "); demo_1(a2, b2); printf(" = "); CL_div(a1,b1,a2,b2);
system("pause");
return 0;
}
**过了三个测试点,第一个总是过不了,还得再想想。 **
注意fabs()和abs()的区别!!!
risc-v Sifive learn inventor基础之串口上一章了解了中断后,继续实践另一个重要的外设串口以及Sifive提供的操作寄存器的函数__METAL_ACCESS_ONCESifive learn inventor基础之串口gpio中断配置开发板只有两个串口,分别是uart0和uart1,uart0外接到jlink模块,可以用于与上位机的通信,uart1与esp32连接。本章以uart0为例子来初始化uart0,并且实现pc端串口发送数据,开发板自动返回接收的数据。一,硬件连
验证注册码是保护软件产品产权的常用手段。一般过程如下,1、 软件发行者收集用户特有的信息;2、 根据用户特有的信息,使用注册机生成注册码并把注册码发给客户;3、 向软件导入注册码,由软件自己验证注册码的正确性。这个过程是如何实现的呢? 我写了一个简单的实现,供大家研究。因为是初次进入这个编程领域,希望高手们给我更多的指导。 第一步利用用户的机器名生成客户特有的认证码...
jupyter安装java内核JAVA JDK首先下载最新的Java JDK解压,配置环境变量测试java -version安装jupyter java内核首先查看jupyter内核jupyter kernelspec list#删除内核使用以下命令jupyter kernelspec remove java安装IJAVA使用unzip解压,解压之后的目录机构为:...
这个是由于有别的MYSQL的进程也读取了数据文件,需要kill掉这个进程即可ps -eaf | gerp mysqlkil
pXecs是一款针对各类企的基于织模块化并可扩展的通信解决方案。它提供核心的SIP路由,同时,所有业务都通过统一的WEB去管理。它提供PBX的基本通信功能,例如即时消息,甚至视频通信。 sipXecs是一款基于SIP的IP PBX,但功能远非一般PBX,包括语音信箱、综合通讯、自动话务员、会议、状态呈现以及呼叫中心功能。sipXecs可以作为一台服务器为小型企业服务,也可以通过集群的形式为大
Vue项目如何关闭Eslint校验前言最近有老哥提出蘑菇博客每次在运行的时候,都会出现一堆的错误,其实这是因为开启了ESlint校验而引起的,但是因为校验过于严格,我们没办法按照自己的喜好随心所欲书写代码,所有下面采纳了老哥的意见,将Eslint校验关闭。关闭Eslint首先我们进入vue_mogu_web项目,然后我们找到build目录下的webpack.base.conf.js文件c...
1、简介1.1 Java中的IO介绍BIO:BlockingIO,同步式阻塞式IO,即传统的IO,是java中最早期的流NIO:Non-BlockingIO,又称New IO,同步式非阻塞IO,是JDK1.4提供的流AIO:AsynchronousIO,异步是非阻塞IO,可以认为是NIO的二代版本,是JDK1.8提供的流1.2 概述NIO是JDK1.4出现的一个新的用于进行数据传输的流全称是Non...
https://www.cnblogs.com/yaopengfei/p/9216229.html转载于:https://www.cnblogs.com/baiqian/p/9216946.html
收到ByteBuf解码成一个字节数组。一个典型的TCP / IP设置将是:ChannelPipeline pipeline = ...; / / 解码 / / Decoders pipeline.addLast("frameDecoder", new LengthFieldBasedFrameDecoder(1048576, 0, 4, 0...
PropertyEditorhttps://blog.csdn.net/pentiumchen/article/details/44026575conversionhttps://blog.csdn.net/pentiumchen/article/details/44066173 BeanWrapperhttps://blog.csdn.net/z6918...
点击上方“CVer”,选择加"星标"或“置顶”重磅干货,第一时间送达作者:poodar.chuhttps://zhuanlan.zhihu.com/p/101346137本文已由作者授权,未经允许,不得二次转载背景介绍应用于自动驾驶、室内导航等领域的 3D 检测是近一段时间比较热门的一个研究方向。其数据格式包括 image、point cloud、RGBD、mesh 等。作为对比,2D ...
mac 使用小技巧持续更新文章目录mac 使用小技巧前言一、使用python3开启http服务二、使用命令获取文件或者文本绝对路径三、自带截图总结前言作为一个攻城狮,日常使用技巧记录提示:以下是本篇文章正文内容,下面案例可供参考一、使用python3开启http服务执行的路径下都可以成为http访问的路径python -m http.server 80 二、使用命令获取文件或者文本绝对路径option+command+c三、自带截图截取部分图片shift+co