搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 求各路大神帮我看一下哪里不对
标题:
求各路大神帮我看一下哪里不对
只看楼主
黎晨昏夜
等 级:
新手上路
帖 子:17
专家分:0
注 册:2016-4-13
结帖率:
50%
楼主
已结贴
√
问题点数:20 回复次数:6
求各路大神帮我看一下哪里不对
#include<stdio.h>
int main()
{
int i,j,s,z;
scanf("%d%d",&i,&j);
do
{
if(i>j)
{
s=i%j;
i=j;
j=s;
}
else
{
s=j%i;
j=i;
i=s;
}
}
while(s==0);
z=i*j/s;
printf("%d\n",s);
printf("%d\n",z);
}
2016-05-16 17:08
grmmylbs
等 级:
贵宾
威 望:
54
帖 子:1409
专家分:5845
注 册:2016-2-14
第
2
楼
得分:7
s == 0的时候,i也是0,s=j%i;i不能做除数。
2016-05-16 17:11
黎晨昏夜
等 级:
新手上路
帖 子:17
专家分:0
注 册:2016-4-13
第
3
楼
得分:0
那应该怎么改?
2016-05-16 17:13
C蝌蚪
来 自:安徽阜阳
等 级:
论坛游民
威 望:
1
帖 子:26
专家分:37
注 册:2016-4-3
第
4
楼
得分:7
这个是求啥的 最大公约数??
2016-05-16 21:04
C蝌蚪
来 自:安徽阜阳
等 级:
论坛游民
威 望:
1
帖 子:26
专家分:37
注 册:2016-4-3
第
5
楼
得分:0
如果是的话 我就发一下吧 ! 可能有大神比我好太多了 别嫌弃:
#include <stdio.h>
#include <stdlib.h>
//求最大公约数
int num(int x,int y)
{
int t;
while(y>0)
{
t=x%y;
x=y;
y=t;
}
return x;
}
//求最小公倍数
int lcm(int x,int y)
{
int t;
t=x*y/num(x,y);
return t;
}
//主函数输出最大公约数 最小公倍数
int main(void)
{
int a,b;
printf("请输入两个数字:");
scanf("%d%d",&a,&b);
printf("%d与%d最大公约数是:",a,b);
printf("%d\n",num(a,b));
printf("%d与%d最小公倍数是:",a,b);
printf("%d\n",lcm(a,b));
return 0;
}
希望有人来指导我一下哪里还需要改进的! 谢谢!!!
[此贴子已经被作者于2016-5-16 21:08编辑过]
2016-05-16 21:07
linlulu001
等 级:
贵宾
威 望:
20
帖 子:944
专家分:4047
注 册:2016-4-13
第
6
楼
得分:7
#include<stdio.h>
int main()
{
int i,j,s,z;
scanf("%d%d",&i,&j);
do
{
if(i>j)
{
s=i%j;
i=j;
j=s;
}
else
{
s=j%i;
j=i;
i=s;
}
}
while(s==0);while的条件有问题,如果s==0的话,你的while循环就没意义了,改成s!=0&&i!=0&&j!=0,最好对i和j进行非0判断。
z=i*j/s; i,j在之前的运行过程中值已经改变,所以这里不能这样使用。
printf("%d\n",s);
printf("%d\n",z);
}
2016-05-17 08:32
黎晨昏夜
等 级:
新手上路
帖 子:17
专家分:0
注 册:2016-4-13
第
7
楼
得分:0
谢谢各位大神的帮助
2016-05-18 09:55
7
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-464885-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.015250 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved