係統粉 > 電腦問答 > 其他問答

已解決用C語言編寫一個求任意兩個數的最大公約數。

提問者:cxmi  |  瀏覽次  |  提問時間:2017-03-05  |  回答數量:9

用C語言編寫一個求任意兩個數的最大公約數。 用C語言編寫一個求任意兩個數的最大公約數。請問怎麼編寫啊?我想破腦袋都想不出。我現在剛開始學循環語句,所以最好用FOR 或者 WHILE來編寫,謝謝了。

已有9條答案
武湖吧吧務

武湖吧吧務

回答數:140  |  被采納數:16

先比較哪個數比較小,然後從小的數開始,讓兩個數除,如果餘數有一個不為0則將除數減1,繼續直到餘數都為0為止,這時除數就是兩個數的最大公約數
2017-03-05 21:24:36
讚 14
甜心の家教

甜心の家教

回答數:171  |  被采納數:30

謝謝你的回答,我做出來是這樣的:
#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;
}
但是他還會顯示較小的約數,我要怎麼做呢?
2017-03-05 23:32:45
讚 17
間餐吃草雞蛋

間餐吃草雞蛋

回答數:111  |  被采納數:142

我才開始學這個東西,順便請問下,我的continue用的正確不?
2017-03-06 02:17:03
讚 11
快樂難求s

快樂難求s

回答數:224  |  被采納數:27

printf後就直接return,要學會使用{}
2017-03-05 21:31:51
讚 22
1416118384

1416118384

回答數:128  |  被采納數:46

你是這個意思?
#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;
}
這樣還是要把其他的約數寫出來,要不你寫出來我看看?
2017-03-06 07:50:28
讚 12
panqiyong159

panqiyong159

回答數:185  |  被采納數:109

#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;


}
2017-03-06 03:02:51
讚 18
穿越之橙

穿越之橙

回答數:127  |  被采納數:106

在for,if這類語句後沒有加花括號是不規範的,不能用這種寫法!
2017-03-06 09:29:53
讚 12
靈魂背後

靈魂背後

回答數:208  |  被采納數:41

恩,知道了,我還想問個問題:
在for循環的時候,找到第一個約數(最大的)後,接直接運行printf了嗎?
為什麼不循環運行,然後把所有的值都打出來?
是隻要滿足if後,for循環就停止了?
2017-03-06 04:57:39
讚 20
12浩辰

12浩辰

回答數:189  |  被采納數:1

你可以把整個流程講一下嗎?
2017-03-06 15:38:00
讚 18
相關問答
最新其他問答
解決方法