标题:两个分数求和???
只看楼主
D2284581470
Rank: 3Rank: 3
来 自:沈阳
等 级:论坛游侠
威 望:2
帖 子:169
专家分:147
注 册:2019-12-8
结帖率:58.33%
已结贴  问题点数:10 回复次数:8 
两个分数求和???
【问题描述】输入两个分数,输出两个分数之和,要求约分。
【输入形式】输入两个分数,格式为:x/y, m/n。
【输出形式】输出约分后的求和结果。
【样例输入】1/2 1/4
【样例输出】3/4
【样例输入】9/10 6/7
【样例输出】123/70
【样例输入】1/5 3/10
【样例输出】1/2(约分后的结果)
【样例说明】提示:可以考虑求两个数的最大公约数。
     
      
搜索更多相关主题的帖子: 求和 输入 结果 分数 输出 
2019-12-16 16:11
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:3 
什么东西不会呢?

输入:scanf( "%d /%d ,%d /%d", &x, &y, &m, &n )
计算:分子 x*n + m*y,分母 y*n
化简:在这个网站搜搜,多得很 https://bbs.bccn.net/viewthread.php?tid=461209&page=1#pid2548817
2019-12-16 18:14
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:554
专家分:3690
注 册:2019-7-29
得分:3 
程序代码:
#include <stdio.h>

struct fraction
{
    int zi;
    int mu;
};

int main()
{
    struct fraction num1,num2,tmp;
    int temp;
    printf("请输入两个分数:");
    scanf("%d/%d %d/%d",&num1.zi,&num1.mu,&num2.zi,&num2.mu);

    tmp.zi=num1.zi*num2.mu+num2.zi*num1.mu;
    tmp.mu=num1.mu*num2.mu;

    if(tmp.zi<tmp.mu)
        temp=tmp.zi;
    else
        temp=tmp.mu;

    for(int i=temp;i>0;i--)
    {
        if(tmp.zi%i==0&&tmp.mu%i==0)
        {
            tmp.mu/=i;
            tmp.zi/=i;
            break;
        }
    }

    printf("得到的分数为:%d/%d\n",tmp.zi,tmp.mu);
    return 0;
}

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2019-12-16 19:00
D2284581470
Rank: 3Rank: 3
来 自:沈阳
等 级:论坛游侠
威 望:2
帖 子:169
专家分:147
注 册:2019-12-8
得分:0 
回复 3楼 纯蓝之刃
谢谢谢谢
2019-12-16 21:33
D2284581470
Rank: 3Rank: 3
来 自:沈阳
等 级:论坛游侠
威 望:2
帖 子:169
专家分:147
注 册:2019-12-8
得分:0 
回复 2楼 rjsp
‘感谢感谢
2019-12-16 21:37
D2284581470
Rank: 3Rank: 3
来 自:沈阳
等 级:论坛游侠
威 望:2
帖 子:169
专家分:147
注 册:2019-12-8
得分:0 
回复 3楼 纯蓝之刃
没必要用结构体吧!
2019-12-16 21:38
D2284581470
Rank: 3Rank: 3
来 自:沈阳
等 级:论坛游侠
威 望:2
帖 子:169
专家分:147
注 册:2019-12-8
得分:0 
回复 2楼 rjsp
#include<stdio.h>
int main()
{
    int a, b, c, d;
    int r;
    int temp;
    int fz, fm, fz1, fm1;
    scanf("%d/%d %d/%d",&a,&b,&c,&d);
    fz = a * d + b * c;
    fm = b * d;
    fz1 = fz;
    fm1 = fm;
    if (fz < fm)
    {
        temp = fz;
        fz = fm;
        fm = temp;
    }
    r = fz % fm;
    while (r != 0)
    {
        fz = fm;
        fm = r;
        r = fz % fm;
    }
    fz1 = fz1 / fm;
    fm1 = fm1 / fm;
    printf("%d/%d\n",fz1,fm1);
    getchar();
    return 0;
}
2019-12-16 21:49
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:3 
程序代码:
#include "stdio.h"
int fun(int num1,int num2)/*求最大公约数函数*/
{
int a,b,temp;
if(num1<num2)
{
temp=num1;
num1=num2;
num2=temp;
}
a=num1;
b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
{
temp=a%b;
a=b;
b=temp;
}
return a;
}
main()
{
int a1,a2,b1,b2,c=1,num1,num2;
printf("请输入第一个分数的分子:\n");
scanf("%d",&a1);
printf("请输入第一个分数的分母:\n");
scanf("%d",&a2);
printf("请输入第一个分数的分子:\n");
scanf("%d",&b1);
printf("请输入第一个分数的分母:\n");
scanf("%d",&b2);
num1=a1*b2+b1*a2;
num2=a2*b2;
c=fun(num1,num2);
num1=num1/c;
num2=num2/c;
if(num2==1)
printf("结果为:%d:",num1);
else
printf("结果为:%d/%d:",num1,num2);
}
2019-12-17 15:06
D2284581470
Rank: 3Rank: 3
来 自:沈阳
等 级:论坛游侠
威 望:2
帖 子:169
专家分:147
注 册:2019-12-8
得分:0 
回复 8楼 自学的数学
谢谢,为什么都是版主回复我
2019-12-17 16:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-498428-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.123981 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved