| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 678 人关注过本帖
标题:找错 分数加减法
只看楼主 加入收藏
逆时光飞
Rank: 2
等 级:论坛游民
帖 子:27
专家分:49
注 册:2011-11-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
找错 分数加减法
#include<stdio.h>
int fen(int a, int c, int s1, char y) ;
int main()
{
    int a, b, c, d, s1 ;
    char  x, y, z ;
    while(scanf("%d%c%d%c%d%c%d", &a,&x,&b,&y,&c,&z,&d)!=EOF)
    {
        s1 = b*d ;
        a = a*d ;
        c = c*b ;
        fen(a, c, s1, y) ;
    }
    return 0 ;
}

int fen(int a, int c, int s1, char y)
{
    int s, i ;
    if(y == '+')   
       s = a+c ;
    else
        s = a-c ;
   
    for( i=((s>s1) ? s:s1) ;i > 1 ;i--)
    {
        if(s%i==0&&s1%i==0)
        {
            s = s/i ;
            s1 = s1/i ;
        }
    }
    if(s == 0||s == s1)
        printf("%d\n", s) ;
    else
       printf("%d/%d\n", s, s1) ;
    return 0 ;
}



ACM题目链接地址http://acm.sdut.
搜索更多相关主题的帖子: include return 加减法 
2011-11-19 22:45
逆时光飞
Rank: 2
等 级:论坛游民
帖 子:27
专家分:49
注 册:2011-11-5
收藏
得分:0 
木有高手嘛
2011-11-20 00:13
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
......

[ 本帖最后由 cosdos 于 2011-11-20 00:29 编辑 ]

—>〉Sun〈<—
2011-11-20 00:26
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
你错在哪?

—>〉Sun〈<—
2011-11-20 01:04
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
时间问题吗?

—>〉Sun〈<—
2011-11-20 01:07
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:20 
9/3+4/2  你的程序处理数据会错误。

—>〉Sun〈<—
2011-11-20 01:10
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
程序代码:
void fen(int a, int c, int s1, char y)
{
    int s,v,w,t;
    
    s = (y=='+' ? a+c : a-c);

    // 处理整数结果
    if ((abs(s) % s1) == 0) {
        printf("%d\n", s/s1);
        return;
    }
    
    //
    // 先求出最大公约数,用最大公约数化简
    v=abs(s); w=s1;
    while (v%w != 0) {
        t=v%w;
        v=w;
        w=t;
    }
    s/=w;
    s1/=w;
    
    printf("%d/%d\n", s, s1);
}

—>〉Sun〈<—
2011-11-20 01:16
快速回复:找错 分数加减法
数据加载中...
 
   



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

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