c语言编程,求两个数的最大公约数和最小公倍数

#include<stdio.h>intmax(intx,inty){intt;if(y>x){t=x;x=y;y=t;}returnx;}intmain(void){i... #include <stdio.h>
int max(int x,int y)
{ int t;
if(y>x)
{
t=x;
x=y;
y=t;
}
return x;
}
int main(void)
{
int a,b,c,d,t;
int larger;
printf("请输入两个正整数 a,b:");
scanf("%d,%d",&a,&b);
larger=max(a,b);
c=a*b;
if (b!=0)
{ t=a%b;a=b;b=t;
printf("最大公约数为:%d\n",a);
printf("它们的最小公倍数为:%d\n",c/a);
}
return 0;
}
哪位大神给看下 我是调试了半个小时,它调戏了我半个小时
展开
 我来答
舜仪岑芳洲
2020-05-30 · TA获得超过4022个赞
知道大有可为答主
回答量:3166
采纳率:33%
帮助的人:221万
展开全部
这样写:
#include
void
main()
{
int
m,n,i,r,temp;
printf("请输入第一个数的值:
");
scanf("%d",&m);
printf("请输入第二个数的值:
");
scanf("%d",&n);
if(n>m)
{
temp=m;
m=n;
n=temp;
}
i=n;
while(i%m!=0)
{
i=i+n;
}
printf("最小公倍数是:%d
\n",i);
r=m%n;
while(r!=0)
{
m=n;
n=r;
r=m%n;
}
printf("最大公约数是:%d
\n",n);
}
图:
启明jxsr
推荐于2016-06-19
知道答主
回答量:26
采纳率:0%
帮助的人:6.7万
展开全部
#include <stdio.h>
int max(int &x,int &y)//改为引用,直接调整大小
{ int t;
if(y>x)
{
t=x;
x=y;
y=t;
}
return x;
}
int main(void)
{
int a,b,c,d,t;
int larger;
printf("请输入两个正整数 a,b:");
scanf("%d,%d",&a,&b);
max(a,b); //
c=a*b;
while(b!=0) //应该用while循环
{ t=a%b;
a=b;
b=t;
}
printf("最大公约数为:%d\n",a);
printf("它们的最小公倍数为:%d\n",c/a);
return 0;
}
更多追问追答
追问
谢谢 但是 我改进后进行运行,比如24 和36 输出的结果又问题。难道是我算法设计的有问题吗?大神求给小白指导
追答
我运行没有问题啊,你把你改进后得代码和结果贴一下
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式