分数的四则运算

Posted hebust

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分数的四则运算相关的知识,希望对你有一定的参考价值。

分数的表示

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

1.如果分数为负,负号放到分子上
2.如果分数为0,分子为0,分母为1
3.分子分母没有除1以为的公约数(化简)

分数的化简

分三步:
1.调整分子分母的负号
2.处理分数为0的情况
3.约分:分子分母绝对值的最大公约数。

Fraction reduction(Fraction A){
    if(A.down<0){
        A.down*=-1;
        A.up*=-1;
    }
    if(A.up==0) A.down=1;
    else{
        int d=gcd(abs(A.down),abs(A.up));
        A.down/=d;
        A.up/=d;
    }
    return A;
}

分数的加减乘除太简单,不赘述。(除法注意判断除数的分子是否为0)

分数的输出

  1. 化简
  2. 分母是否为1(是否为整数)
  3. 分子的绝对值是否大于分母(是否为假分数)
void showFraction(Fraction A){
    A=reduction(A);
    if(r.down==1)printf("%ld",r.up);
    else if(abs(A.up)>abs(A.down)){
        printf("%d %d/%d",A.up/A.down,abs(A.up),abs(A.down));
    }
    else printf("%d/%d",A.up,A.down);
}





以上是关于分数的四则运算的主要内容,如果未能解决你的问题,请参考以下文章

设计四则运算包含真分数的小学二年级运算

随机产生30到整数真分数四则运算

带有真分数的四则运算

生成小学四则运算题,包括真假分数

四则运算

四则运算2