对分数求加减乘除,以及化简

#include<iostream>
#include<math.h>
using namespace std;
struct Fraction{
long up,down;
};
//求分子分母的最大公约数
int gcb(int a,int b)
{
if(b==)
return a;
else
return gcb(b,a%b);
}
//化简
Fraction reduction(Fraction &result)
{
if(result.down < ) //分母为负
{
result.down = -result.down;
result.up = - result.up;
}
else if(result.up == ) //分母为0
result.down = ;
else
{
int x = gcb(abs(result.up),abs(result.down)); //分子分母同时除最大公约数
result.up /= x;
result.down /= x;
}
return result;
}
//加法
Fraction Add(Fraction a,Fraction b)
{
Fraction c;
c.up = a.up * b.down + a.down * b.up;
c.down = a.down * b.down;
return reduction(c);
}
//减法
Fraction minu(Fraction a,Fraction b)
{
Fraction c;
c.up = a.up * b.down - a.down * b.up;
c.down = a.down * b.down;
return reduction(c);
}
//乘法
Fraction multi(Fraction a,Fraction b)
{
Fraction c;
c.up = a.up * b.up;
c.down = a.down * b.down;
return reduction(c);
}
//除法
Fraction divide(Fraction a,Fraction b)
{
Fraction c;
c.up = a.up * b.down;
c.down = a.down * b.up;
return reduction(c);
}
void showresult(Fraction result)
{
if(result.down == )
cout<<result.up<<endl;
else if(abs(result.up)>abs(result.down))
cout<<result.up /result.down <<" "<<abs(result.up % result.down)<<"/"<<result.down<<endl;
else
cout<<result.up<<"/"<<result.down<<endl;
}
int main()
{
Fraction f1,f2;
while(cin>>f1.up>>f1.down>>f2.up>>f2.down)
{
showresult(Add(f1,f2));
showresult(minu(f1,f2));
showresult(multi(f1,f2));
showresult(divide(f1,f2));
}
return ;
}

C++ 实现分数的四则运算的更多相关文章

  1. 2019.3.13 Java实现分数的四则运算

    Java实现分数的四则运算 自己的写法 markdown太久没写格式不会用了--将就着看 Fraction.java package com.lanou; public class Fraction ...

  2. PAT Basic 1034 有理数四则运算(20) [数学问题-分数的四则运算]

    题目 本题要求编写程序,计算2个有理数的和.差.积.商. 输⼊格式: 输⼊在⼀⾏中按照"a1/b1 a2/b2"的格式给出两个分数形式的有理数,其中分⼦和分⺟全是整型范围内的整数, ...

  3. PAT Advanced 1088 Rational Arithmetic (20) [数学问题-分数的四则运算]

    题目 For two rational numbers, your task is to implement the basic arithmetics, that is, to calculate ...

  4. PAT Advanced 1081 Rational Sum (20) [数学问题-分数的四则运算]

    题目 Given N rational numbers in the form "numerator/denominator", you are supposed to calcu ...

  5. 用java具体代码实现分数(即有理数)四则运算

    用java具体代码实现分数(即有理数)四则运算 1,背景 Java老师布置了一个关于有理数运算的题目,因为参考书上有基本代码,所以自己主要是对书上代码做了一点优化,使其用户交互性更加友好以及代码封装性 ...

  6. 结对编程项目——四则运算vs版

    结对编程项目--四则运算vs版 1)小伙伴信息:        学号:130201238 赵莹        博客地址:点我进入 小伙伴的博客 2)实现的功能: 实现带有用户界面的四则运算:将原只能在 ...

  7. 结对作业1----基于GUI的四则运算生成器

    组员:201421123015 陈麟凤 201421123019 张志杰 201421123020 黄海鸿 coding 地址:代码点这里 需求分析: 1.除了整数的四则运算还要支持分数的四则运算: ...

  8. 结对作业--基于GUI的四则运算生成器

    组员:201421123015 陈麟凤 201421123019 张志杰 201421123020 黄海鸿 coding 地址 :https://coding.net/u/zhang1995/p/wo ...

  9. 个人作业1——四则运算题目生成程序(基于C++)

    题目描述: 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: 1 ...

随机推荐

  1. cannot find package "context"

    导入  github.com/go-sql-driver/mysql 和 database/sql 时,报cannot find package "context"的错误因为go1 ...

  2. mysql:设置字符集utf8mb4 支持emoji字符

    为什么要把数据库的字符集设置成utf8mb4呢?以前一直用的都是utf8啊? 答案在这里:utf8适用于不使用移动设备的互联网交互,utf8mb4适用于当前的移动设备互联网开发,因为移动设备中常常会有 ...

  3. WebLogic的下载与安装

    一.WebLogic的介绍    WebLogic是美国bea公司出品的一个application server,确切的说是一个基于Javaee架构的中间件,纯java开发的,最新版本WebLogic ...

  4. 创建用户自定义函数 SQL

    //创建用户自定义函数------标量函数 create function dbo.bmrs(@bmh as int) returns int as begin declare @bmrs int s ...

  5. 枚举、反射等 GetEnumName GetEnumDescription

    /// <summary> /// Retrieves the name of the constant in the specified enumeration that has the ...

  6. Hibernate复习

    第一天 Hibernate是一个持久层的ORM框架.两个配置文件, 类名.hbm.xml类的属性和表的列对应 hibernate.cfg.xml核心配置文件 Hibernate相关API: Confi ...

  7. Kafka 配置安装

    1.从官网下载安装包 http://kafka.apache.org/downloads2.上传到01虚拟机,解压3.进入安装目录下的config目录4.对server.properties进行配置 ...

  8. 测试WCF遇到的一些问题

    win7+iis7 1.localhost访问bad request错误. 主机地址不要指定为127.0.0.1.设置为”全部未分配“. 2.错误 500.19(由于权限不足而无法读取配置文件)的问题 ...

  9. [UE4]Spin Box,数字输入,可拖动

    一.Spin Box在Input组下 二.Spin Box的文字样式可以在Spin Box.Display中修改 三.Spin Box事件 1.On Value Changed:值改变时触发 2.On ...

  10. [UE4]字体材质

    一.准备好一个字体文件,直接拖放到内容浏览器 二.创建一个名为testFontMaterial的UserWidget,添加一个TextBlock到默认的CanvasPanel.Font Family: ...