一,题目引入:     

        输入格式:每行数据是一个字符串,格式是“a/b+c/d”或“a/b-c/d”。其中a, b, c, d是一个0-9的整数。b、d不为0。输入数据保证合法。输出格式:对于输入数据的每一行输出两个分数的运算结果。注意结果应符合书写习惯,没有多余的符号、分子、分母,并且化简至最简分数。例如:“1/4-1/2”的结果是-1/4,“1/3-1/3”的结果是0。

二,解题思路:

         输入的两个分数是合法的,分母不能为0,首先需要计算两个分母的最小公倍数(算法1),其次再计算出分子的值,最后分子分母进行约分,即找出分子分母的最大公约数(算法2)。

三,参考代码如下:

#include<iostream>
using namespace std;
void func(int a,int b,char ch,int c,int d){//a,c为分子,b,d为分母,ch为运算符号 int e;//b和d的最小公倍数int f;//分子的计算结果 for(e=1;;e++){if(e%b==0&&e%d==0){//cout<<e<<"测试1"<<endl;//找到了分母的最小公倍数 break;}} if(ch=='+'){f=e/b*a+e/d*c;} else if(ch=='-'){f=e/b*a-e/d*c;}//分子分母找到最大公约数并约分化简int fenzi=f;int fenmu=e;if(fenzi==0){cout<<0;}else{while(e!=f){if(e>f){e=e-f;}else{f=f-e;}}//cout<<e<<"测试2"<<endl;//最大公约数fenzi=fenzi/e;fenmu=fenmu/e;cout<<fenzi<<"/"<<fenmu<<endl;}
}
int main(){int a,b,c,d;char ch,ch1;cin>>a>>ch1>>b>>ch>>c>>ch1>>d;func(a,b,ch,c,d);return 0;
}

四,运行结果如下:

五,参考链接如下: 如何用C语言求两个数的最大公约数的三种算法-职坐标 (zhizuobiao.com)https://c.zhizuobiao.com/c-18061900032/
C语言如何计算两个数的最小公倍数_C 语言_脚本之家 (jb51.net)https://www.jb51.net/article/267414.htm

基于C++实现两个分数的加减法相关推荐

  1. 实现两个分数的加减法编写一个C程序,

    描述 编写一个C程序,实现两个分数的加减法 输入 输入包含多行数据  每行数据是一个字符串,格式是"a/boc/d".  其中a, b, c, d是一个0-9的整数.o是运算符&q ...

  2. 为什么c语言加法错误,分数的加减法——C语言初学者代码中的常见错误与瑕疵(12)...

    重构 题目的修正 我抛弃了原题中"其中a, b, c, d是一个0-9的整数"这样的前提条件,因为这种限制毫无必要.只假设a, b, c, d是十进制整数形式的字符序列. 我也不清 ...

  3. c语言除法分数,关于两个分数的算数运算

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 函数主要分为四个部分:加减法运算.乘除法运算.化简.主函数 其中关于输入部门有问题,请各位帮我检查检查.感激不尽! 加减法可以用一个算法实现,乘除法也可以 ...

  4. java语音jvm_java环境中基于jvm的两大语言:scala,groovy

    一.java环境中基于jvm的两大语言:scala,groovy 可以在java项目里混编这两种语言: scala:静态语言,多范式语言,糅合了面向对象.面向过程:可以与java和net互操作:融汇了 ...

  5. 实验:基于keepalived实现两台realserver服务器中的nginx和php-fpm服务互为主从

    基于keepalived实现两台realserver服务器中的nginx和php-fpm服务互为主从 思路:利用两个VIP,一个定位nginx,一个定位php-fpm 步骤: 1.准备两台基于LNMP ...

  6. 基于stm32的两轮自平衡小车3(硬件篇)

    此篇为硬件篇,接上一篇"基于stm32的两轮自平衡小车2(原理篇)".包含自行设计电路板原理图与PCB电路图的过程.详见目录. 目录 stm32管脚分配 硬件原理图 PCB电路图 ...

  7. 基于stm32的两轮自平衡小车4(软件调试篇)

    本篇是软件调试篇,接上一篇硬件篇:基于stm32的两轮自平衡小车3(硬件篇),本篇内容是对硬件部分的软件实现,具体模块详见目录.这里先上效果:转B站 目录 定时器PWM驱动程序 定时器编码器模式驱动程 ...

  8. 【C++实验】类和对象(两个分数相加并且化简)

    类和对象进一步讨论 面向对象程序设计中的几个名词: st1是对象 display()是方法 st1.dispaly()是消息 构造函数:对类的成员进行初始化(为对象分配内存) 带参数/使用默认参数的构 ...

  9. 7-12 编程实现两个分数相加

    输入两个分数,例如3/4+1/2,输出3/4+1/2=5/4. 运行程序时,如下图所示: 输入样例1: 3/4+1/2 结尾无空行 输入样例2: 1/6+1/2 结尾无空行 输出样例1: 3/4+1/ ...

最新文章

  1. hdu 2897 巴什博弈变形
  2. windows或Ubuntu中请求github.com请求超时,或在下载GitHub文件出现:<urlopen error [Errno 110] Connection timed out>
  3. 3个著名加密算法(MD5、RSA、DES)的解析
  4. WSUS部署中...
  5. 在家点点接入云信,打造全新社区商业和社交生态
  6. FM算法python实现
  7. .Net Core中间件和过滤器实现错误日志记录
  8. mysql ERROR 1045 和2058时(28000): 错误解决办法
  9. iPhone 13系列电池容量曝光:续航时长能否提升才是关键
  10. 《恋上数据结构第1季》二叉搜索树BST
  11. Python并行实例
  12. 串口循环缓存区 简单 免初始化 不用堆、指针、分段memcpy
  13. 【云周刊】第200期:云栖专辑 | 阿里开发者们的第6个感悟:享受折磨
  14. 图解Linux下如何搭建C#开发环境
  15. 手机上万里挑一的CAD看图软件,好用到颠覆你的世界观!
  16. ip地址和域名的关系是什么?
  17. PMP 项目沟通管理
  18. jsonp跨域原理详解
  19. CSS Flexbox 青蛙游戏
  20. Vetur自定义格式化代码

热门文章

  1. boost哪些库需要编译
  2. vmware虚机安装vmtool
  3. golang时间字符串转时间戳
  4. mysql连接出错 mysqladmin flush-hosts 解决方法(mysqladmin 刷新主机解除阻塞)
  5. 计算机组成的分析指令的op,计算机组成原理
  6. 【在线可测】通用中文点选验证码识别
  7. PXE启动配置及原理
  8. 冷笑话 企鹅与北极熊
  9. Geoffrey Hinton:从神经网络黑暗时代的坚守到今天的胜利
  10. 也许我们喜欢数学,只是不喜欢数学课