6-17复数四则运算 --- 蓝桥杯

设计复数库,实现基本的复数加减乘除运算。

  输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符分隔;输出时按a+bi的格式在屏幕上打印结果。参加样例输入和样例输出。

  注意考虑特殊情况,无法计算时输出字符串"error"。

样例输入

2 4 * -3 2

样例输出

-14-8i

样例输入

3 -2 + -1 3

样例输出

2+1i

解题分析:

复数运算法则

http://baike.baidu.com/link?url=i7MKOzPCWS-sN0-NEuy_4kVejT1TZzpED8qOLDJnDUuwj91OAGRj_zA-BrvRD0VboeKHaMFve_xmajcbLC9Ada

代码:

#include<cstdio>

#include<cstdlib>

#include<cstring>

using namespace std;

int main()

{

double a,b,c,d,n,m;

char ch;

scanf("%lf %lf %c %lf %lf",&a,&b,&ch,&c,&d);

if(ch==‘+‘){

n=a+c;m=b+d;

if(m==0)printf("%g\n",n);

else if(m<0&&n!=0)printf("%g%gi\n",n,m);

else if(m>0&&n!=0)printf("%g+%gi\n",n,m);

else if(n==0&&m!=0)printf("%gi\n",m);

}

else if(ch==‘-‘){

n=a-c;m=b-d;

if(m==0)printf("%g\n",n);

else if(m<0&&n!=0)printf("%g%gi\n",n,m);

else if(m>0&&n!=0)printf("%g+%gi\n",n,m);

else if(n==0&&m!=0)printf("%gi\n",m);

}

else if(ch==‘*‘){

n=a*c+b*d*-1;m=a*d+b*c;

if(m==0)printf("%g\n",n);

else if(m<0&&n!=0)printf("%g%gi\n",n,m);

else if(m>0&&n!=0)printf("%g+%gi\n",n,m);

else if(n==0&&m!=0)printf("%gi\n",m);

}

else if(ch==‘/‘){

double ans=c*c+d*d;

if(ans==0)printf("error\n");

else {

d=d*-1;

a=a/ans;b=b/ans;

n=a*c+b*d*-1;m=a*d+b*c;

if(m==0)printf("%g\n",n);

else if(m<0&&n!=0)printf("%g%gi\n",n,m);

else if(m>0&&n!=0)printf("%g+%gi\n",n,m);

else if(n==0&&m!=0)printf("%gi\n",m);

}

}

return 0;

}

时间: 2024-08-26 15:18:20

6-17复数四则运算 --- 蓝桥杯的相关文章

蓝桥杯 算法提高 6-17 复数四则运算

算法提高 6-17复数四则运算 时间限制:1.0s   内存限制:512.0MB 设计复数库,实现基本的复数加减乘除运算. 输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符分隔:输出时按a+bi的格式在屏幕上打印结果.参加样例输入和样例输出. 注意考虑特殊情况,无法计算时输出字符串"error". 样例输入 2 4 * -3 2 样例输出 -14-8i 样例输入 3 -2 + -1 3 样例输出 2+1i 1 #include<iostream> 2 #inc

算法-蓝桥杯习题(二)

蓝桥杯习题 算法训练(111题) 1 /* 2 算法训练 明明的随机数 3 4 问题描述 5 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号.然后再把这些数从小到大排序,按照排好的顺序去找同学做调查.请你协助明明完成“去重”与“排序”的工作. 6 输入格式 7 输入有2行,第1行为1个正整数,表示所生成的随机数的个数: 8 N 9 第2

2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告

2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告 勘误1:第6题第4个 if最后一个条件粗心写错了,答案应为1580. 条件应为abs(a[3]-a[7])!=1,宝宝心理苦啊.!感谢zzh童鞋的提醒. 勘误2:第7题在推断连通的时候条件写错了,后两个if条件中是应该是<=12 落了一个等于号.正确答案应为116. 1.煤球数目 有一堆煤球.堆成三角棱锥形.详细: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形). -. 假设一共

蓝桥杯 地宫取宝(12&#39;)

X 国王有一个地宫宝库.是n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被带到地宫的入口,国王要求他只能向右或向下行走. 走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大, 小明就可以拿起它(当然,也可以不拿). 当小明走到出口时,如果他手中的宝贝恰好是k件,则这些宝贝就可以送给小明. 请你帮小明算一算,在给定的局面下,他有多少种不同的行动方案能获得这k件宝贝. [数据格式] 输入一行 3个整数,用空格分开:n m

第五届蓝桥杯全国软件设计大赛--2013年校内选拔赛Java题目

第五届蓝桥杯全国软件设计大赛 2013年校内选拔赛Java题目 一.考生注意: (1)[结果填空题]要求参赛选手根据题目描述直接填写结果.求解方式不限.不要求源代码. 把答案存入[考生文件夹]下对应题号的文件中即可. (2)[代码填空题]要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确.完整.所填写的代码不超过一条语句(即中间不能出现分号). 把填空的答案(仅填空处的答案,不包括题面已存在的代码)存入[考生文件夹]下对应题号的文件中中即可. (3)[编程题]要求选手设计

*结构-06. 复数四则运算

1 /* 2 * Main.c 3 * F6-结构-06. 复数四则运算 4 * Created on: 2014年8月26日 5 * Author: Boomkeeper 6 ********部分通过*********** 7 */ 8 9 #include <stdio.h> 10 #include <math.h> 11 12 #define EPSINON 0.1 13 14 /* 15 * 复数结构体,c1.c2对应于题目中的c1.c2 16 */ 17 struct c

【蓝桥杯】PrimeDistance

如果p1和p2(p1< p2)均为素数,且任意整数p(p1< p< p2)都不是素数,则说素数p1与p2是相邻的,并定义它们之间的距离为d= p2 - p1.给定正整数L和U,求出区间[L, U]中距离最小的两个相邻素数C1与C2和距离最大的两个相邻素数D1与D2. 例如,L=2,U=17时,C1=2,C2=3,D1=7,D2=11. import java.util.ArrayList; import java.util.Scanner; public class PrimeDista

蓝桥杯软件大赛练习系统——基础练习 十进制转十六进制

问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式.它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15.十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E. 给出一个非负整数,将它表示成十六进制的形式. 输入格式 输入包含一个非负整数a,表示要转换的数.0<=a<=2147483647 输出格式 输出这个整数的16进制表示 样例输入

蓝桥杯 安慰奶牛

算法训练 安慰奶牛 时间限制:1.0s   内存限制:256.0MB 锦囊1 使用最小生成树算法. 锦囊2 将每条边(a, b)的权值Lj改变为2Lj+Ca+Cb,然后使用最小生成树来计算. 问题描述 Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路.道路被用来连接N个牧场,牧场被连续地编号为1到N.每一个牧场都是一个奶牛的家.FJ计划除去P条道路中尽可能多的道路,但是还要保持牧场之间 的连通性.你首先要决定那些道路是需要保留的N-1条道路.第j条双向道路连接了牧场Sj和