分数加法 C++

各位C++大佬们,问一下这道题目要怎么做???速回!求!

分数加法

描述

分数加法是分数四则运算中的一算,具体规则如下:

1、同分母分数相加,分母不变,即分数单位不变,分子相加,能约分的要约分。

2、异分母分数相加,先通分,即运用分数的基本性质将异分母分数转化为同分母分数,改变其分数单位而大小不变,再按同分母分数相加去计算,最后能约分的要约分。

3、带分数相加,把各个加数中的整数部分相加所得的和作为和的整数部分,再把各个加数中的分数部分相加所得的和作为和的分数部分,若得的分数部分为假分数,要化为整数或带分数,并将其整数再加入整数部分;或者把全部加数中的带分数先化为假分数,再按分数加法的法则求和,然后将结果仍化为带分数或整数。

4、每次加得的和,都要约分化成最简分数;如果所得的和是假分数,要化成整数或带分数。

输入两个分数的分子和分母,请编写程序,求出两个分数相加的结果。

输入:第1行输入第一个分数的分子和分母;

第2行:输入第二个分数的分子和分母。

以上均为正整数。

输出:以q/p的形式输出运算结果的最简分数(如果分子分母相等,则输出1,如果分子为0,则输出0);是假分数的还要化为带分数,先输出整数部分,空格后再输出后面部分。

输入样例:

2 3
4 1

输出样例 :

4 2/3

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
分数计算器C是一种大家都常用的小型软件,主要功能是支持分数的四则运算和求最大公约数。以下是一份分数计算器C的程序代码: #include <stdio.h> #include <stdlib.h> // 分数结构体 typedef struct Fraction{ int numerator; // 分子 int denominator; // 分母 }Fraction; // 求最大公约数 int gcd(int a, int b){ return b == 0 ? a : gcd(b, a % b); } // 约分 Fraction reduce(Fraction f){ if(f.numerator == 0){ // 如果分子为0,分母置为1 f.denominator = 1; }else{ int d = gcd(abs(f.numerator), abs(f.denominator)); f.numerator /= d; f.denominator /= d; } return f; } // 加法 Fraction add(Fraction f1, Fraction f2){ Fraction sum; sum.numerator = f1.numerator * f2.denominator + f2.numerator * f1.denominator; sum.denominator = f1.denominator * f2.denominator; return reduce(sum); } // 减法 Fraction substract(Fraction f1, Fraction f2){ Fraction diff; diff.numerator = f1.numerator * f2.denominator - f2.numerator * f1.denominator; diff.denominator = f1.denominator * f2.denominator; return reduce(diff); } // 乘法 Fraction multiply(Fraction f1, Fraction f2){ Fraction product; product.numerator = f1.numerator * f2.numerator; product.denominator = f1.denominator * f2.denominator; return reduce(product); } // 除法 Fraction divide(Fraction f1, Fraction f2){ Fraction quotient; quotient.numerator = f1.numerator * f2.denominator; quotient.denominator = f1.denominator * f2.numerator; return reduce(quotient); } int main(){ Fraction f1 = {1, 2}; Fraction f2 = {2, 3}; // 加法 Fraction f3 = add(f1, f2); printf("%d/%d + %d/%d = %d/%d\n", f1.numerator, f1.denominator, f2.numerator, f2.denominator, f3.numerator, f3.denominator); // 减法 Fraction f4 = substract(f1, f2); printf("%d/%d - %d/%d = %d/%d\n", f1.numerator, f1.denominator, f2.numerator, f2.denominator, f4.numerator, f4.denominator); // 乘法 Fraction f5 = multiply(f1, f2); printf("%d/%d * %d/%d = %d/%d\n", f1.numerator, f1.denominator, f2.numerator, f2.denominator, f5.numerator, f5.denominator); // 除法 Fraction f6 = divide(f1, f2); printf("%d/%d ÷ %d/%d = %d/%d\n", f1.numerator, f1.denominator, f2.numerator, f2.denominator, f6.numerator, f6.denominator); return 0; } 以上是分数计算器C的程序代码,通过运行该程序可以实现分数的加减乘除运算,并且支持自动约分和求最大公约数功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值