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
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
大家都在看
推荐资讯