分数的创建、化简、四则运算与输出

您所在的位置:网站首页 c语言中四则运算代码 分数的创建、化简、四则运算与输出

分数的创建、化简、四则运算与输出

2024-07-16 03:04| 来源: 网络整理| 查看: 265

文章目录 1 分数表示和简化1.1 表示1.2 分数化简 2 分数的计算2.1 分数加法2.2分数减法2.3 分数的乘法2.4 分数的除法 3 分数输出3 完整示例

1 分数表示和简化 1.1 表示

写成假分数的形式,无论分子比分母大或者小,都保留其原数。

struct Fraction//分数 { int up, down;//分子、分母 };

用Fraction类型表示分数,或者定义数组表示一堆分数。

制定表示的规则:

1 使down为非负数。如果分数为负数,up为负数即可;2 如果该分数恰为0,那么规定其分子为0,分母为1;3 约分:求出分子或分母的最大公约数d,然后令分子、分母同时除以d。 1.2 分数化简 规则: 1 如果分数为负数,分子、分母都变为相反数;2 如果分子up为0,令分母为1;3 约分:求出分子绝对值和分母绝对值的最大公约数,然后令分子分母同时除以d。 Fraction reduction(Fraction result){ if(result.down r.down){//假分数 printf("%d %d/%d\n", r.up/r.down, abs(r.up)%r.down, r.down); }else{//真分数 printf("%d/%d\n", r.up, r.down); } } 由于分数的乘法或除法的过程中可能会使分子或分母超过int型表示的范围,因此一般情况下,分子和分母应该使用long long型来存储。 3 完整示例 #include #include struct Fraction { int up; int down; }; //求最大公约数 int gcd(int a, int b){ return !b ? a : gcd(b, a%b); } //化简 Fraction reduction(Fraction result){ if(result.down r.down){//假分数 printf("%d %d/%d\n", r.up/r.down, abs(r.up)%r.down, r.down); }else{//真分数 printf("%d/%d\n", r.up, r.down); } } int main(int argc, char const *argv[]) { Fraction f1, f2, res; f1.up = 1; f1.down = 3; f2.up = 1; f2.down = 3; // res = add(f1, f2); res = minu(f1, f2); // res = multi(f1,f2); // res = divide(f1, f2); showResult(res); return 0; }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3