首页 > 编程知识 正文

分数的四则运算300道含答案,小数分数的四则运算

时间:2023-05-04 16:43:51 阅读:252831 作者:1837

分数的表示: struct Fraction{ //分数 int up,down;//分子,分母};

分数的化简:

化简步骤如下,

1,如果分母down为负数,那么令分子up和分母down都变为相反数;

2,如果分子up为0,那么令分母为down为1;

3,约分规则:求出分子绝对值与分母绝对值的最大公约数d,然后令分子与分母同时除以d。

代码如下:

Fraction reduction(Fraction res){ if(res.down < 0) { res.up = -res.up; res.down = -res.down; } if(res.up == 0){ res.down = 1; }else{ int d = gcd(abs(res.up),abs(res.down)); res.up /= d; res.down /= d; } return res; } 分数运算法则: 1,分数加法

代码如下:

Fraction add( Fraction f1,Fraction f2){ Fraction res; res.up = f1.up * f2.down+f2.up * f1.down;//分数和的分子 res.down = f1.down * f2.down; //分数和的分母 return reduction(res);} 2,分数减法

代码如下:

Fraction minu(Fraction f1,Fraction f2){ Fraction res; res.up = f1.up*f2.down - f2.up*f1.down;//分数差的分子 res.down = f1.down * f2.down; //分数差的分母 return reduction(res);} 3,分数乘法

代码如下:

Fraction multi(Fraction f1,Fraction f2){ Fraction res; res.up = f1.up * f2.up; //分数乘积的分子 res.down = f1.down * f2.down;//分数乘积的分母 return reduction(res);} 4,分数除法

代码如下:

Fraction divide( Fraction f1,Fraction f2){ Fraction res; res.up = f1.up * f2.down; //分数商的分子 res.down = f1.down * f2.up; //分数商的分母 return reduction(res); } 分数的输出

注意点:

1,输出分数前,需要先化简;

2,如果分数r的分母down为1,说明分数为整数,直接输出分子即可;

3,如果分数r的分子up的绝对值大于分母down说明该分数是假分数,此时应按带分数形式输出,即整数部分为r.up/r.down,分子为abs(r.up)%r.down;

4,以上均不满足时说明分数r是真分数,原样输出即可。

代码如下:

void showResult(Fraction r){ r = reduction(r); if(r.down == 1) printf("%lld",r.up);//整数 else if(abs(r.up) > r.down) printf("%d %d/%d",r.up/r.down,abs(r.up)%r.down,r.down);//假分数 else printf("%d/%d",r.up,r.down); //真分数}

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。