**

#7-8 复数四则运算 (10分)**

**

本题要求编写程序,计算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

第一次写这个代码理所当然的想把两个复数直接输出大概就是这个样子
printf("(%.1lf+%.1lfi)符号(%.1lf+%.1lfi)=%.1lf");
依次输出然后再写一个复数的计算函数就可以了
没想到忽略了虚部正负的问题
嗯~ o( ̄▽ ̄)o当然复数的计算函数也想了很久
总想一次把结果全部输出
结果卒
第二次写因为第一次的莽我由判断虚部的正负得到了灵感
1.要分步输出复数
2.每次输出复数都要对虚部进行判断(三种情况:正,负,0)
实部也要进行判断如果是零就给它省去
3.既然复数都是分步输出,那么结果我不如也是分别计算实部与虚部再利用2进行判断
结果四个数据点只过了一半,纯实数和纯虚数没过

第三次写看到网上的大佬说因为要先进行四舍五入在进行判断是否为0,而本弱鸡是先判断是否为0,在输出,所以觉得可能是这一点出现了问题,所以马上改变了顺序,但依然未过,我内牛满面

第四次写终于我领悟到了奥义
原来输入两个函数时当实部与虚部为0时,不用省去直接输出
我的天啊!!!亏我省去了,还在只有实部或虚部时连括号都省去了,再次捂脸,白瞎了我的头发

经测试第三次说的无效,可能是数据点的问题,不过少些一个四舍五入的函数不香吗?嘿嘿嘿!!!

**总结一下难点复数的输出以及结果实部与虚部是否为零的判断
那个结果实部与虚部是否为零的判断本弱鸡是用绝对值
如果有更好的方法还请
大佬*指出

#include<stdio.h>
#include<math.h>
char fu[5]={' ','+','-','*','/'};
void shuchu(double a,double b,double c,double d,int i);
double shi(double a,double b,double c,double d,int e);
double xu(double a,double b,double c,double d,int e);
void can1(double a,double b);
void can2(double a,double b);
int main ()
{double a,b,c,d;int i;scanf("%lf %lf %lf %lf",&a,&b,&c,&d);for(i=1;i<=4;i++){shuchu(a,b,c,d,i);}
}
void shuchu(double a,double b,double c,double d,int i)
{can1(a,b);printf(" %c ",fu[i]);can1(c,d);printf(" = ");can2(shi(a,b,c,d,i),xu(a,b,c,d,i));printf("\n");
}
void can1(double a,double b)
{printf("(%.1lf",a);if(b<0)printf("%.1lfi)",b);elseprintf("+%.1lfi)",b);
}
void can2(double a,double b)
{int f=0;if(fabs(a)>=0.05)printf("%.1lf",a);elsef=1;if(f==0){if(fabs(b)>=0.05){if(b>0)printf("+%.1lfi",b);elseprintf("%.1lfi",b);}else;}else{if(fabs(b)>=0.05)printf("%.1lfi",b);else{printf("%.1lf",0.0);}}}
double shi(double a,double b,double c,double d,int e)
{if(e==1)return a+c;else if(e==2)return a-c;else if(e==3)return a*c-b*d;elsereturn (a*c+b*d)/(c*c+d*d);
}
double xu(double a,double b,double c,double d,int e)
{if(e==1)return b+d;else if(e==2)return b-d;else if(e==3)return c*b+a*d;elsereturn (b*c-a*d)/(c*c+d*d);
}

#7-8 复数四则运算 (10分)相关推荐

  1. 复数四则运算 (15 分)

    7-76 复数四则运算 (15 分) 本题要求编写程序,计算2个复数的和.差.积.商. 输入格式: 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部 ...

  2. 实验2-2-7 整数四则运算 (10 分)

    实验2-2-7 整数四则运算 (10 分) 本题要求编写程序,计算2个正整数的和.差.积.商并输出.题目保证输入和输出全部在整型范围内. 输入格式: 输入在一行中给出2个正整数A和B. 输出格式: 在 ...

  3. 7-8 整数四则运算 (10分)

    7-8 整数四则运算 (10分) 本题要求编写程序,计算2个正整数的和.差.积.商并输出.题目保证输入和输出全部在整型范围内. 输入格式: 输入在一行中给出2个正整数A和B. 输出格式: 在4行中按照 ...

  4. 7-36 复数四则运算 (15 分)(python编写)

    本题要求编写程序,计算2个复数的和.差.积.商. 输入格式: 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部.题目保证C2不为0. 输出格式 ...

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

    本题要求编写程序,计算2个复数的和.差.积.商. 输入格式: 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部.题目保证C2不为0. 输出格式 ...

  6. (python)7-4 sdut-oop-1 简单的复数运算 (10 分)

    设计一个类Complex,用于封装对复数的下列操作: 成员变量:实部real,虚部image,均为整数变量: 构造方法:无参构造方法.有参构造方法(参数2个) 成员方法:含两个复数的加.减.乘操作.复 ...

  7. 7-2 复数计算 (10分)

    定义复数类Complex,并重载运算符:+.-.-=,使复数类对象完成相应的运算. 根据以下代码段,完善??处的内容及程序内容,以实现规定的输出. class Complex { public: Co ...

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

    一.题目要求 本题要求编写程序,计算2个复数的和.差.积.商. 输入格式: 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部.题目保证C2不为 ...

  9. PTA C语言结构体 7-5 复数四则运算 (15 分)

    本题要求编写程序,计算2个复数的和.差.积.商. 输入格式: 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部.题目保证C2不为0. 输出格式 ...

最新文章

  1. 数据挖掘原理与算法:练习题2
  2. Flashback Query笔记
  3. java postgresql json_java – 将PostgreSQL JSON列映射到Hibernate值类...
  4. c语言error ld returned,[Error] ld returned 1的错误
  5. 宁可相信世上有鬼,也不要相信产品经理那张破嘴?
  6. 组织管理插件-代码自动补全-语法检查等特性-SpaceVim v1.5.0
  7. 自动化测试之一----基本概念
  8. Automated Feature Engineering Basics
  9. Predictably Irractional - 期望的效应
  10. 索泰显卡超频软件测试要多少时间,索泰显卡超频软件(FireStorm)
  11. 十以内加法速算游戏设计
  12. 软件资源学生优惠合集
  13. android egl使用方法,Android EGL整理
  14. 代码维护服务器,维护服务器的利器-pubwin 2009程序代码
  15. craftsmanship中文_中英文常用广告套语
  16. SpringBoot整合activeMQ消息队列手动签收(Session.CLIENT_ACKNOWLEDGE)为什么失效啊?
  17. 程序员群嘲红芯浏览器:注释过度很业余,创新混淆视听
  18. 下载文件时,文件名的设置
  19. 给定桩号获取纵断面中的高程值(c# for civil3d)
  20. 基于多种群机制的PSO算法Python实现

热门文章

  1. 数字IC学习笔记(1)CMOS晶体管原理
  2. ArcGIS之基于GIS的旅游辐射区人口统计
  3. LiveGBS流媒体平台GB/T28181功能-如何将海康大华宇视华为摄像头视频流集中存储云端录像分布式录像存储
  4. 微软推出 Office 365 | 历史上的今天
  5. 如何系统的学习javaScript?赶紧看看吧
  6. 编写一个C语言程序,将大写字母变成小写字母
  7. 【翻译】GNU make 手册
  8. OneNote | 复制粘贴文本输出图片解决方案
  9. 什么led灯性价比高?家用led灯选哪种最好
  10. 有意思的数学--数系的发展历史