基础算法题——复数计算(蓝桥杯算法训练 P1103)
复数计算题目( P1103)
编程实现两个复数的运算。设有两个复数 和 ,则他们的运算公式为:
要求:(1)定义一个结构体类型来描述复数。
(2)复数之间的加法、减法、乘法和除法分别用不用的函数来实现。
(3)必须使用结构体指针的方法把函数的计算结果返回。
说明:用户输入:运算符号(+,-,*,/) a b c d.
输出:a+bi,输出时不管a,b是小于0或等于0都按该格式输出,输出时a,b都保留两位。
输入:
- 2.5 3.6 1.5 4.9
输出:
1.00±1.30i
题目分析:
题目意思简单明了,掌握复数的基本运算、结构体指针。
(结构体指针也可以不使用,因为蓝桥杯系统评测只会输入数据,判断输出是否正确,并不关注实现过程。)
①复数的四则运算:(来源360百科)
加法法则:(a+bi)+(c+di)=(a+c)+(b+d)i;
减法法则:(a+bi)-(c+di)=(a-c)+(b-d)i;
乘法法则:(a+bi)·(c+di)=(ac-bd)+(bc+ad)i
除法法则:(a+bi)÷(c+di)=[(ac+bd)/(c²+d²)]+[(bc-ad)/(c²+d²)]i
理解复数除法法则:
②使用结构体指针的方法把函数的计算结果返回。
结构体指针:通俗一些说就是指向结构体的指针,类似于int类型指针。
struct node{int a;int b;
}*Node;//*Node为结构体指针
int *p;//p为int类型指针
最后编写加、减、乘、除四个函数,每个函数返回结构体指针。
以下为具体代码:
#include<bits/stdc++.h>
using namespace std;struct node
{double a, b;
}*Node;node* sub(double a1,double b1,double a2,double b2)
{double a, b;node *p;p = (node*)malloc(sizeof(node));a=a1-a2;b=b1-b2;p->a=a;p->b=b;return p;
}node* add(double a1,double b1,double a2,double b2)
{double a, b;node *p;p = (node*)malloc(sizeof(node));a=a1+a2;b=b1+b2;p->a=a;p->b=b;return p;
}node* div(double a1,double b1,double a2,double b2)
{double a, b;node *p;p = (node*)malloc(sizeof(node));a=(a1*a2+b1*b2)/(a2*a2+b2*b2);b=(b1*a2-a1*b2)/(a2*a2+b2*b2);p->a=a;p->b=b;return p;
}node* mul(double a1,double b1,double a2,double b2)
{double a, b;node *p;p = (node*)malloc(sizeof(node));a=a1*a2-b1*b2;b=a1*b2+a2*b1;p->a=a;p->b=b;return p;
}int main()
{char ch;double a1, b1, a2, b2;scanf("%c %lf %lf %lf %lf", &ch, &a1, &b1, &a2, &b2);if(ch=='-')Node=sub(a1, b1, a2, b2);else if(ch=='+')Node=add(a1, b1, a2, b2);else if(ch=='*')Node=mul(a1, b1, a2, b2);else if(ch=='/')Node=div(a1, b1, a2, b2);printf("%.2lf+%.2lfi", Node->a, Node->b);return 0;
}
不用结构体指针 代码如下:
#include<bits/stdc++.h>
using namespace std;void sub(double a1,double b1,double a2,double b2)
{double a, b;a=a1-a2;b=b1-b2;printf("%.2lf+%.2lfi", a, b);
}void add(double a1,double b1,double a2,double b2)
{double a, b;a=a1+a2;b=b1+b2;printf("%.2lf+%.2lfi", a, b);
}void div(double a1,double b1,double a2,double b2)
{double a, b;a=(a1*a2+b1*b2)/(a2*a2+b2*b2);b=(b1*a2-a1*b2)/(a2*a2+b2*b2);printf("%.2lf+%.2lfi", a, b);
}void mul(double a1,double b1,double a2,double b2)
{double a, b;a=a1*a2-b1*b2;b=a1*b2+a2*b1;printf("%.2lf+%.2lfi", a, b);
}int main()
{char ch;double a1, b1, a2, b2;scanf("%c %lf %lf %lf %lf", &ch, &a1, &b1, &a2, &b2);if(ch=='-')sub(a1, b1, a2, b2);else if(ch=='+')add(a1, b1, a2, b2);else if(ch=='*')mul(a1, b1, a2, b2);else if(ch=='/')div(a1, b1, a2, b2);return 0;
}
希望能够将自己的一些学习经验分享给有需要的人。
我是小郑,一个坚持不懈的小白。
基础算法题——复数计算(蓝桥杯算法训练 P1103)相关推荐
- java算法排列式_JAVA 蓝桥杯算法 全排列 背公式即可
什么是全排列? 所谓全排列就是把几个字符或数字(以下称为元素),进行全部排列 例如:字符串 abc 那么就可以这样排abc acb bac bca cab cba 把全部元素能用到的排列方式进行全部排 ...
- 【蓝桥杯算法题】用java遍写税收计算
[蓝桥杯算法题]用java遍写税收计算 题目:劳务报酬税收计算:输入 m ,输出税后收入.如果 m <=800,不扣税, 如果800< m <=4000.则 m 减去800后的金额扣 ...
- c语言oj题1923偶数之和,问题 1923: [蓝桥杯][算法提高VIP]学霸的迷宫 (BFS)
题目描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫.因为班长还有妹子要陪,磨刀不 ...
- 【C/C++】蓝桥杯算法必刷题(三)目标ICPC铜/蓝桥杯国一
目录 前言 题解文章汇总 题目传送门:算法必刷题(三) 该题单中第一类考点:二进制 1018.有趣的二进制 1019.[NOIP2006]数列 1020.只能吃土豆的牛牛 该题单中第二类考点:思维 1 ...
- 【C/C++】蓝桥杯算法必刷题(一)目标ICPC铜/蓝桥杯国一
目录 前言 该题单中第一类考点:输入输出 1001.这是一道签到题 1005.乘法表 1006.KiKi学程序设计基础 1007.疫情死亡率 该题单中第二类考点:思维题 1002.排列式 1018.开 ...
- 【蓝桥杯算法题】获取桌面图标名称和坐标
[蓝桥杯算法题]获取桌面图标名称和坐标 实现 解释 实现 可以使用Python的第三方库pyautogui来获取桌面图标的名称和坐标.下面是一个示例代码: import pyautogui# 获取屏幕 ...
- 蓝桥杯算法竞赛系列第一章——位运算的奇巧淫技及其实战
遇见蓝桥遇见你,不负代码不负卿! 第二章"递归"已将更新咯,欢迎铁汁们点评!蓝桥杯算法竞赛系列第二章--深入理解重难点之递归(上)_安然无虞的博客-CSDN博客 目录 一.位运算符 ...
- 蓝桥杯 算法训练 Beaver's Calculator
蓝桥杯 算法训练 Beaver's Calculator 问题描述 从万能词典来的聪明的海狸已经使我们惊讶了一次.他开发了一种新的计算器,他将此命名为"Beaver's Calculator ...
- 蓝桥杯算法竞赛系列第0章——蓝桥必考点及标准模板库STL(上)(万字博文,建议抱走)
欢迎来到:遇见蓝桥遇见你,不负代码不负卿! 目录 一.蓝桥必考点剖析 二.什么是STL 三.vector的常见用法详解 1.vector的定义 2.vector容器内元素的访问 (1).通过下标访 ...
最新文章
- Servlet--05--HttpServletRequest; HttpServletResponse
- sprintboot-learn(一)
- 图说数据中心蒸发节能技术
- 题解-bzoj4221 JOI2012kangaroo
- 数据结构之栈实现中缀转后缀并计算结果
- HTTP协议中request报文请求方法和状态响应码
- child计算机英语作文,范文:The One-Child Family
- bfv同态加密_lattigo: 基于Lattice代数结构的Go同态加密库
- SAP License:SAP S/4HANA Cloud介绍
- android 寺库trytry_寺库与美图达成战略合作美图美妆APP将由TryTry运营_联商网
- iMindMap12思维导图如何制作导图教程
- Chrome浏览器V43版本不支持silverlight 5.0的解决办法
- html矩形变圆形的代码,html5canvas绘制矩形和圆形的实例代码.pdf
- php api权限,如何设计RESTful的API权限
- uboot_v2016 版本中fw_printenv的编译问题
- 新的深度学习模型可以准确识别睡眠阶段
- delphi fastreport4.5 的使用
- 程序员复工后被裁,600万房21000房贷无力偿还,给年轻人3点忠告
- macbook pro window蓝牙驱动 下载
- 字符串处理StringTokenizer