标题:编写函数:分数的乘法
取消只看楼主
t南柯一梦
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2017-11-4
结帖率:88.89%
已结贴  问题点数:10 回复次数:4 
编写函数:分数的乘法

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
struct fraction
{

    int numerator; // 分子

    int denominator; // 分母

    int symbol; // 符号,分子为负时取值为-1,为正时取值为1,其它取值无意义

};
int scan_frac(struct fraction *f, struct fraction *g)//按题目格式输入两个分数,存入f和g所指的内存中。

{
    int a,b,x,y;
    scanf("%d/%d*%d/%d",&a,&b,&x,&y);
    f->numerator=a;
    f->denominator=b;
    g->numerator=x;
    g->denominator=y;
    if(a>0)
    {
        f->symbol=1;
    }
    else
    {
        f->symbol=-1;
    }
    if(x>0)
    {
        g->symbol=1;
    }
    else
    {
        g->symbol=-1;
    }
}
struct fraction multiply_frac(struct fraction f, struct fraction g)//返回分数f和g的乘积
{
    struct fraction result;
    int a,b,t,m,n;
    a=f.numerator*g.numerator;
    b=f.denominator*g.denominator;
    m=a;
    n=b;
    if(a<b)
    {
        t=a;
        a=b;
        b=t;
    }
    while(a%b!=0)
    {
        t=b;
        b=a%b;
        a=t;
    }
    a=m/b;
    b=n/b;
    result.numerator=a;
    result.denominator=b;
    result.symbol=f.symbol*g.symbol;
    return result;
}
int main()
{
    struct fraction f1, f2, product;
    while(scan_frac(&f1, &f2) != EOF)
    {
        product = multiply_frac(f1, f2);
        if(product.numerator == 0)
        {
            printf("0\n");
            continue;
        }
        if(product.symbol == -1)
            printf("-");
        printf("%d/%d\n", product.numerator, product.denominator);
    }
    return 0;
}
为什么我的程序一运行就要崩(主函数由题目给出,不能改动)
搜索更多相关主题的帖子: 分数 struct int symbol product 
2018-01-03 00:42
t南柯一梦
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2017-11-4
得分:0 
回复 2楼 rjsp
谢谢 我知道怎么改了 但是改了之后提交到oj上说输出超限 你知道是什么原因吗

[此贴子已经被作者于2018-1-3 11:22编辑过]

2018-01-03 11:00
t南柯一梦
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2017-11-4
得分:0 
回复 5楼 wp231957
主函数由题目给出 不能修改 不过我知道怎么做了 谢谢了
2018-01-03 18:07
t南柯一梦
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2017-11-4
得分:0 
回复 5楼 wp231957
主函数由题目给出 不能修改 不过我知道改哪了 谢谢了
2018-01-03 18:09
t南柯一梦
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2017-11-4
得分:0 
回复 6楼 吹水佬
你这个不太对,主函数由题目给出 ,不能去修改,不过我知道怎么做了,谢谢了
2018-01-03 18:12



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




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

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