当前位置: 首页 > news >正文

PTA基础编程题目集 7-36 复数四则运算(C语言实现)

摘要:本文为 PTA 复数四则运算题解,介绍了复数加减乘除的格式要求与 C 语言实现思路,并给出完整代码。

题目描述

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

输入样例:

2 3.08 -2.04 5.06
1 1 -1 -1.01

输出样例:

(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
(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<math.h>// 引入数学函数头文件(用于 fabs 求绝对值)voidprintComplex(doublea,doubleb){// 打印复数的格式化输出函数if(fabs(a)<0.05&&fabs(b)<0.05){// 实部虚部都接近 0printf("0.0");// 输出 0.0}elseif(fabs(a)<0.05){// 只有实部接近 0printf("%.1fi",b);// 只输出虚部,带 i}elseif(fabs(b)<0.05){// 只有虚部接近0printf("%.1f",a);// 只输出实部}elseif(b>0){// 虚部为正数printf("%.1f+%.1fi",a,b);// 输出实部+虚部i}else{// 虚部为负数printf("%.1f%.1fi",a,b);// 输出实部-|虚部|i(负号自带)}}voidprintOp(doublea1,doubleb1,charop,doublea2,doubleb2,doublea,doubleb){// 打印完整运算表达式printf("(");// 输出左括号printComplex(a1,b1);// 打印第一个复数printf(") %c (",op);// 输出运算符和第二个复数的左括号printComplex(a2,b2);// 打印第二个复数printf(") = ");// 输出等号printComplex(a,b);// 打印计算结果printf("\n");// 输出换行}intmain(){doublea1,b1,a2,b2;// 定义两个复数的实部和虚部scanf("%lf %lf %lf %lf",&a1,&b1,&a2,&b2);// 读取两个复数doublea,b;// 定义结果复数的实部和虚部a=a1+a2;// 计算和的实部b=b1+b2;// 计算和的虚部printOp(a1,b1,'+',a2,b2,a,b);// 打印加法运算a=a1-a2;// 计算差的实部b=b1-b2;// 计算差的虚部printOp(a1,b1,'-',a2,b2,a,b);// 打印减法运算a=a1*a2-b1*b2;// 计算积的实部:(a1*a2 - b1*b2)b=a1*b2+a2*b1;// 计算积的虚部:(a1*b2 + a2*b1)printOp(a1,b1,'*',a2,b2,a,b);// 打印乘法运算doubledenom=a2*a2+b2*b2;// 计算除法分母:C2模的平方a=(a1*a2+b1*b2)/denom;// 计算商的实部b=(b1*a2-a1*b2)/denom;// 计算商的虚部printOp(a1,b1,'/',a2,b2,a,b);// 打印除法运算return0;// 程序正常结束}

流程图

开始

读取 a1, b1, a2, b2

计算和: a = a1 + a2, b = b1 + b2

printOp 输出加法结果

计算差: a = a1 - a2, b = b1 - b2

printOp 输出减法结果

计算积: a = a1*a2 - b1*b2, b = a1*b2 + a2*b1

printOp 输出乘法结果

计算商: denom = a2^2 + b2^2, a = (a1*a2+b1*b2)/denom, b = (b1*a2-a1*b2)/denom

printOp 输出除法结果

程序结束

http://www.jsqmd.com/news/1314199/

相关文章:

  • 2026年河南粮食机械服务哪家靠谱?服务网点地址与电话整理|到店前核对与准备指南|2026年8月2日资料更新 - geo88
  • 昆明汽车刹车检修养护攻略|异响跑偏无力正规合规维修指南 - 英特菲斯
  • 2026河北铝合金光伏支架厂家推荐,热镀锌厂家哪家好怎么选?实用选购指南 - geo88
  • GD32H7时钟与复位系统详解:从原理到实战配置指南
  • Excel分布分析可视化:直方图、箱形图与散点图实战指南
  • 2026年8月邢台非急救救护车转运指南:康复复诊如何安排 - 小校长
  • 2026沈阳奢侈品回收常见坑拆解:易奢福虚高引流背后的到手刀套路 - 易奢福
  • 深度技术剖析:开源工具OpenCore Legacy Patcher如何让老旧Mac重获新生
  • 2026沈阳中古奢品出手体验:易奢福无票无盒也能正常估值不拒收 - 易奢福
  • 3D宇宙飞船创意实战:用SpaceshipGenerator高效打造科幻舰队
  • 抖音批量下载工具:告别水印困扰,高效管理你的内容素材库
  • 2026墙面发霉反复复发?多半是外墙/卫生间暗漏在作祟,北京业主必看 - 筑宅安
  • 哈尔滨长途救护车转运病人服务热线|正规非急救跨省转运平台介绍 - 新闻快传
  • 从Rank分到职业表现:用Python数据分析拆解电竞选手实力评估
  • 揭秘GPT-5.6 Sol登顶ARC-AGI-3:思维链与温度调优如何释放大模型推理潜力
  • 河南斗式提升机厂家/FSFG系列高方平筛生产厂家定制推荐|河南权丰机械地址与电话整理|营业时间建议先电话确认、到店前请核对|2026年8月2日资料更新 - geo88
  • 2026年上海焊接机器人二手库卡工业机器人工厂地址核对|电话13371862795|松江区文吉路555号|营业时间及到店准备(2026年8月2日资料更新) - geo88
  • Wio Terminal环境监测:模拟传感器数据采集、显示与SD卡存储实战
  • ESPHome连接Grove模块:免编程实现Home Assistant智能硬件集成
  • 福州台江区靠谱防水补漏公司推荐:防水补漏避坑指南 2026.8 月新版 - 超人防水
  • 3分钟掌握QKeyMapper:终极Windows输入映射工具完全指南
  • 上海堆垛工业机器人(四轴机器人)供应厂家地址电话|资料核对卡|2026年8月2日更新 - geo88
  • 沉浸式翻译:3个步骤让你轻松阅读任何外语网页,效率提升300%
  • 电平转换器原理与实战:从I2C总线到MOSFET电路详解
  • 2026海淀卫生间防水公司推荐,厨房防水公司哪家好怎么选不踩坑?4个坑+5条硬标准,靠谱公司推荐 - geo88
  • 海口长途救护车转运病人服务热线|2026 正规跨省非急救转运渠道参考 - 新闻快传
  • 数学危机:知识爆炸下的证明困境与AI、形式化验证新范式
  • BiliTools:从海量视频到精准知识的智能重构,效率提升300%
  • 虎符台/Legion Seal:终极全面战争MOD管理解决方案
  • 15.6英寸FHD便携显示器选购与配置全攻略:打造高效移动工作站