a1029384756mc666 2021-08-20 20:07 采纳率: 80%
浏览 36
已结题

关于#c++#的问题,请各位专家解答!

题目描述
从键盘读入一个分数算式,为2个分数做加法或者减法,请输出分数算式的结果,结果也用分数表达,且约分到最简形式。(请注意:做减法可能得到负的分数,如果是负数要输出负号-,如1/15-4/15结果为-1/5)(5.1.76)

输入格式
分数表达式(分数表达式中,每个分数的分子和分母都是正整数,两个分数中的运算符,可能是加号,也可能是减号,且分数表达式不含空格)
输出格式
分数表达式计算的结果
样例输入
1/12+5/12
样例输出
1/2
提示/说明
注意考虑特殊情况,如:1/2+1/2=1,1/2-1/2=0,这些情况下结果不需要表现为分数形式。

  • 写回答

1条回答 默认 最新

  • 难瓜学编程 2021-08-20 20:50
    关注
    
    #include <iostream>
    #include <cmath>
    #include <cstdio>
    using namespace std;
    int gys(int x,int y)
    {
        int z=y;
        while(x%y!=0)
        {
            z=x%y;
            x=y;
            y=z;
        }
        return z;
    }
    int main()
    {
        int a,b,c,d,i,s,n,k;
        char x,y,z;
        while(~scanf("%d%c%d%c%d%c%d",&a,&x,&b,&y,&c,&z,&d))
        {
            s=b*d;
            a=a*d;
            c=c*b;
            if(y=='+')
            {
                i=a+c;
            }
            else
            {
                i=a-c;
            }
            k=fabs(i);
            if(i==0)printf("0\n");
            else
            {
                n=gys(k,s);
                if(s/n==1)printf("%d\n",i/n);
                else printf("%d/%d\n",i/n,s/n);
            }
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月29日
  • 已采纳回答 8月21日
  • 创建了问题 8月20日

悬赏问题

  • ¥60 pb数据库修改或者求完整pb库存系统,需为pb自带数据库
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路