c语言如何乘分数,C语言分数相乘程序简化问题。

C语言分数相乘程序简化问题。

答案:2  信息版本:手机版

解决时间 2019-10-03 09:30

已解决

2019-10-03 02:33

这是一个先输入分数个数n,回车后再分别输入分子和分母,可以输入n次,最后计算约分后的结果,但是程序过于复杂,所以想简化一下。。。O(∩_∩)O谢谢!!!

#include "stdafx.h"

int main()

{

unsigned long long n,a,b,i=0,j,k,x,y,z;

scanf_s("%llu",&n);

x=1;

y=1;

while(i {

scanf_s("%llu%llu",&a,&b);

x=x*a;

y=y*b;

i++;

}

if(x%y==0)

{ z=x/y;

printf("%llu\n",z);

return 0;

}

if((x {

for(j=x;j>=1;j--)

{

while((x%j==0)&&(y%j==0))

{x=x/j;

y=y/j;

printf("%llu/%llu\n",x,y);

return 0;

}

}

}

if((x>y)&&(x%y!=0))

{

for(k=y;k>=1;k--)

{

while((x%k==0)&&(y%k==0))

{x=x/k;

y=y/k;

printf("%llu/%llu\n",x,y);

return 0;

}

}

}

}

最佳答案

2019-10-03 03:04

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

#include

unsigned longMaxFactor(unsigned longm,unsigned longn) { // 最大公约数

unsigned longt;

if(n     for(t = m;t > 0;t--) {

if(m % t == 0 && n % t == 0)

returnt;

}

return1; // 永远得不到执行。

}

intmain() {

unsigned longa,b,t,T;

scanf("%lu",&T);

while(T--) {

scanf("%lu%llu",&a,&b);

printf("%lu/%llu",a,b);

t = MaxFactor(a,b);

printf(" = %lu/%lu\n",a/t,b/t);

}

return0;

}

全部回答

1楼

2019-10-03 03:10

#include "stdio.h" void main() { float a,b,c,d,i,j; scanf("%d/%d%d/%d",&a,&b,&c,&d); if((b!=0)&&(d!=0)) { i=a/b; j=c/d; if(i>j) { printf("%d/%d>%d/%d\n",a,b,c,d); 问题出在这里.以及下面又"/"字符的语句中. } else if(i==j) printf("%d/%d=%d/%d\n",a,b,c,d); else printf("%d/%d

我要举报

如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

大家都在看

推荐资讯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值