当前位置:系统粉 > 电脑问答 > 其他问答 > 用C语言编写一个求任意两个数的最大公约数。

用C语言编写一个求任意两个数的最大公约数。

提问者:cxmi  |  浏览 次  |  提问时间:2017-03-05  |  回答数量:9

用C语言编写一个求任意两个数的最大公约数。 用C语言编写一个求任意两个数的最大公约数。请问怎么编写啊?我想破脑袋都想不出。我现在刚开始学循环语句,所以最好用FOR 或者 WHILE来编写,谢谢了。

已有9条答案
武湖吧吧务

武湖吧吧务

回答数:140  |  被采纳数:16

2017-03-05 21:24:36
先比较哪个数比较小,然后从小的数开始,让两个数除,如果余数有一个不为0则将除数减1,继续直到余数都为0为止,这时除数就是两个数的最大公约数
赞 14
甜心の家教

甜心の家教

回答数:171  |  被采纳数:30

2017-03-05 23:32:45
谢谢你的回答,我做出来是这样的:
#include <stdio.h>
int main()
{
int a,b,c;
scanf("%d,%d",&a,&b);
for(c=a;c>0;c--)
if(a%c==0 && b%c==0)
printf("最大公约数为:%d",c);
else
continue;
return 0;
}
但是他还会显示较小的约数,我要怎么做呢?
赞 17
间餐吃草鸡蛋

间餐吃草鸡蛋

回答数:111  |  被采纳数:142

2017-03-06 02:17:03
我才开始学这个东西,顺便请问下,我的continue用的正确不?
赞 11
快乐难求s

快乐难求s

回答数:224  |  被采纳数:27

2017-03-05 21:31:51
printf后就直接return,要学会使用{}
赞 22
1416118384

1416118384

回答数:128  |  被采纳数:46

2017-03-06 07:50:28
你是这个意思?
#include <stdio.h>
int main()
{
int a,b,c;
scanf("%d,%d",&a,&b);
for(c=a;c>0;c--)
if(a%c==0 && b%c==0)
printf("最大公约数为:%d",c);
return 0;
}
这样还是要把其他的约数写出来,要不你写出来我看看?
赞 12
panqiyong159

panqiyong159

回答数:185  |  被采纳数:109

2017-03-06 03:02:51
#include <stdio.h>
int main()
{
int a,b,c;
scanf("%d,%d",&a,&b);
for(c=a;c>0;c--)

if(a%c==0 && b%c==0)

printf("最大公约数为:%d",c);
return 0;


}
赞 18
穿越之橙

穿越之橙

回答数:127  |  被采纳数:106

2017-03-06 09:29:53
在for,if这类语句后没有加花括号是不规范的,不能用这种写法!
赞 12
灵魂背后

灵魂背后

回答数:208  |  被采纳数:41

2017-03-06 04:57:39
恩,知道了,我还想问个问题:
在for循环的时候,找到第一个约数(最大的)后,接直接运行printf了吗?
为什么不循环运行,然后把所有的值都打出来?
是只要满足if后,for循环就停止了?
赞 20
12浩辰

12浩辰

回答数:189  |  被采纳数:1

2017-03-06 15:38:00
你可以把整个流程讲一下吗?
赞 18
解决方法
版权信息

Copyright @ 2011 系统粉 版权声明 最新发布内容 网站导航