【7-33有理数加法】PTA基础编程题目,实现逻辑简单的代码

#include<stdio.h>
int main(){
    char c1,c2;//定义两字符用于scanf输入/号
    int a1,a2,a3,b1,b2,b3,i,min;//定义输入输出分子分母,循环变量
    scanf("%d%c%d %d%c%d",&a1,&c1,&b1,&a2,&c2,&b2);//用于输入
    int beishu; //定义两分数最小公倍数
    for(i=1;i<=b1*b2;i++){ //循环求最小公倍数
        beishu=b1*i;       
        if(beishu%b2==0){  
            a1*=(beishu/b1); //通分后的分子数
            a2*=(beishu/b2);
            a3=a1+a2;       //相加
            b3=beishu;
            break;
        }
    }
    if(a3<b3){    //化简和分数,最小公约数最大为分子分母较小那一个
        min=a3;
    }else {
        min=b3;
    }
    for(i=min;i>=1;i--){ //循环求最小公约数
        if(a3%i==0&&b3%i==0){
            a3/=i;
            b3/=i;
        }
    }
    if(b3==1){        //分母为1时,直接输出分子
        printf("%d",a3);
    }else{
        printf("%d/%d",a3,b3);
    }
   
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值