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

分数加减

 

#include <stdio.h>
#include <stdlib.h>// 求最大公因数
int gcd(int a, int b) 
{return b == 0? a : gcd(b, a % b);
}// 化简分数
void simplify(int *num, int *den) 
{int g = gcd(*num, *den);*num /= g;*den /= g;if (*den < 0) {*num *= -1;*den *= -1;}
}// 分数相加
int add_num(int a, int b, int c, int d) 
{return a * d + c * b;
}int add_den(int b, int d) 
{return b * d;
}// 分数相减
int subtract_num(int a, int b, int c, int d) 
{return a * d - c * b;
}int subtract_den(int b, int d) 
{return b * d;
}// 输出分数
void printFraction(int num, int den) 
{if (den == 1) {printf("%d\n", num);} else if (num > den) {printf("%d+%d/%d\n", num / den, num % den, den);} else if (num < 0 && abs(num) > den) {int o,p,q;o=abs(num)/den +1;p=abs(num)%den;q=den-p;printf ("-%d+%d/%d\n",o,q,den);}else {printf("%d/%d\n", num, den);}
}int main() 
{int a,b,c,d;char op;while (scanf ("%d/%d%c%d/%d",&a,&b,&op,&c,&d)!=EOF){int e,f;if (op=='+'){e=add_num (a,b,c,d);f=add_den (b,d);}else{e=subtract_num(a,b,c,d);f=subtract_den (b,d);}simplify (&e,&f);printFraction (e,f);}return 0;
}

http://www.lryc.cn/news/487567.html

相关文章:

  • 基于卷积神经网络的皮肤病识别系统(pytorch框架,python源码,GUI界面,前端界面)
  • QT与嵌入式——获取网络实时时间
  • 优化装配,提升品质:虚拟装配在汽车制造中的关键作用
  • Bug的严重等级和优先级别与分类
  • 游戏引擎学习第13天
  • bind返回失败(ctrl+c)结束后不能再次加载
  • 菜鸟驿站二维码/一维码 取件识别功能
  • 23种设计模式-备忘录(Memento)设计模式
  • 搜维尔科技:Manus遥操作五指机械手专用手套惯性高精度虚拟现实
  • MySql面试题.运维面试题之五
  • 小程序-基于java+SpringBoot+Vue的小区服务管理系统设计与实现
  • JWT 过期后 自动刷新方案
  • react-amap海量点优化
  • GRU(门控循环单元)详解
  • 【代码随想录|回溯算法排列问题】
  • Azure Kubernetes Service (AKS)资源优化策略
  • R语言 | 宽数据变成一列,保留对应的行名和列名
  • RTSP播放器EasyPlayer.js播放器在webview环境下,PC和安卓能够正常播放,IOS环境下播放器会黑屏无法播放
  • .NET周刊【11月第3期 2024-11-17】
  • c语言数据22数组使用
  • 深入理解TensorFlow中的形状处理函数
  • MySQL数据库3——函数与约束
  • ⾃动化运维利器 Ansible-Jinja2
  • 博客文章怎么设计分类与标签
  • FastDDS之DataSharing
  • 计算机网络在线测试-概述
  • 【MySQL】数据库必考知识点:查询操作全面详解与深度解剖
  • 鲸鱼机器人和乐高机器人的比较
  • 游戏引擎学习第15天
  • 详解模版类pair