**

#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. 【剑指offer-Java版】41和为s的两个数字VS和为s的连续正数序列
  2. SQLSERVER中修复状态为Suspect的数据库
  3. 腾讯云yum操作实现CentOS 7.6 64位Linux系统图形界面的安装和vnc的搭建
  4. 李宁-2015年7月13日-个人文档
  5. 常用模块——pickle模块
  6. yum php mysql5.5_CentOS 5.5使用yum来安装LAMP(php运行环境)
  7. 圆柱与平面接触宽度_圆柱滚子轴承保持架锁爪变形引起的轴承故障
  8. 一天天过得很快啊,今天大家都干了啥?我们拿出来晒晒
  9. django基础-学生管理系统
  10. 搭建SpringMVC详解
  11. Oracle备份还原实践
  12. 数控g71编程实例带图_数控编程代码g71 数控g71编程实例有图
  13. 恒德室内智能照明控制系统电路设计
  14. python什么字体好看_玩转python字体
  15. uboot调试过程:用来调试phy不通的过程(am3352)
  16. NOI Online #2入门组
  17. ES6——TDZ(暂时性死区)
  18. CentOS里route命令详解
  19. Unity 3D官方教程——Adventure Game学习记录
  20. 计算机进位制转换方法,计算机进位数制及其转换方法和技巧

热门文章

  1. opencv关于对比度和亮度的误解
  2. 循环赛日程表------分治算法
  3. Microsoft OneNote 2019 for Mac(云笔记)
  4. SQLite Expert Professional 3.5 注册
  5. BarChart的简单使用
  6. 重定向和内部转发个人见解
  7. perl语言学习第一篇:将文本perl.txt内容读入,再格式化输出(菜鸟小试牛刀)
  8. 广州穗雅医院[口腔黏膜病]导致口腔扁平苔藓原因有哪些?
  9. hibernate中对象的3种状态(瞬态,持久态,游离态)
  10. c语言程序设计成绩管理应用书,C语言程序设计学生成绩管理系统实验报告