c语言怎么编辑乘法公式,编写函数:分数的乘法

按题目写了一下,不知对否。

#include

struct fraction

{

int numerator;      // 分子

int denominator;    // 分母

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

};

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

{

printf("Input format: a/b*c/d\n");

if (scanf("%d/%d*%d/%d",&f->numerator,&f->denominator,&g->numerator,&g->denominator)!=4 ||

f->numerator==0 || f->denominator==0 || g->numerator==0 || g->denominator==0)

return 0;

f->symbol = f->numerator<0 ? -1 : 1;

g->symbol = g->numerator<0 ? -1 : 1;

f->numerator *= f->symbol;

g->numerator *= g->symbol;

return 1;

}

struct fraction multiply_frac(struct fraction *f, struct fraction *g)//返回分数f和g的乘积

{

struct fraction result;

result.numerator = f->numerator * g->numerator;

result.denominator = f->denominator * g->denominator;

result.symbol = f->symbol * g->symbol;

int min = result.numerator

for (; min>1; --min)

if ((result.numerator%min)==0 && (result.denominator%min)==0)

break;

if (min > 1)

{

result.numerator /= min;

result.denominator /= min;

}

return result;

}

int main()

{

struct fraction f1, f2, product;

while (scan_frac(&f1, &f2))

{

product = multiply_frac(&f1, &f2);

if(product.symbol == -1)

printf("-");

printf("%d/%d\n", product.numerator, product.denominator);

}

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值