當前位置:妙知谷 >

母嬰教育 >學習交流 >

C語言“最大公約數和最小公倍數”代碼講解

C語言“最大公約數和最小公倍數”代碼講解

題目:輸入兩個正整數m和n,求最大公約數和最小公倍數。

操作方法

(01)首先打開CodeBlocks,創建一個新項目。項目語言,選擇“c”, 我們將項目名稱命名為“MaxAndMin”,然後下一步,“finish”。

C語言“最大公約數和最小公倍數”代碼講解
C語言“最大公約數和最小公倍數”代碼講解 第2張
C語言“最大公約數和最小公倍數”代碼講解 第3張
C語言“最大公約數和最小公倍數”代碼講解 第4張
C語言“最大公約數和最小公倍數”代碼講解 第5張

(02)創建好項目後,我們打開 “main.c”文件。在這裏我們先分析一下題目。輸入兩個正整數m和n,求最大公約數和最小公倍數此程序要求 輸入兩個數,處理後,輸出兩個結果。這裏我們繼續用到 自定義函數 分別來完成最大公約數和最小公倍數。

C語言“最大公約數和最小公倍數”代碼講解 第6張
C語言“最大公約數和最小公倍數”代碼講解 第7張

(03)首先是main函數部分,我們完成輸入功能其中m和n是輸入的兩個數,num是將來存儲的最大公約數。num的值是由後面我們定義的函數,來賦值的。

C語言“最大公約數和最小公倍數”代碼講解 第8張

(04)這裏為了能更加嚴謹,我們要強制用户輸入正確的數for(;;)表示一個無窮迴圈 同樣使用while(true)也可達到無窮迴圈效果。在循環中要求用户多次輸入,直到用户輸入合法的數值

C語言“最大公約數和最小公倍數”代碼講解 第9張
C語言“最大公約數和最小公倍數”代碼講解 第10張

(05)接下來,當用户輸入合法之後。我們就要寫else的情況了。但在寫之前,我們先要將計算最大公約數和最小公倍數的函數定義出來(詳細見圖)

C語言“最大公約數和最小公倍數”代碼講解 第11張
C語言“最大公約數和最小公倍數”代碼講解 第12張

(06)首先是最大公約數其中r用來存儲餘數。這裏我們簡單説一下算法過程。 首先我們將m和n求餘數(誰大誰小不影響)。當得到的餘數r不是0,就表示 m和n之間不是倍數關係。那麼我們將m的值改為n,n中從存取r 再次執行r=m%n 。意思就是,反覆的用餘數取模餘數,直到0位置。就是n中存的就為最大公因數了。

C語言“最大公約數和最小公倍數”代碼講解 第13張
C語言“最大公約數和最小公倍數”代碼講解 第14張

(07)最後是,最小公倍數函數,很簡單,利用公式(m*n)/最大公約數,很快就能得到結果。這就免除了麻煩的計算過程

C語言“最大公約數和最小公倍數”代碼講解 第15張

(08)最後,回到main中,我們將代碼補全。在else中 分別調用兩個函數。這樣代碼就完成了。以下為main函數中的代碼

C語言“最大公約數和最小公倍數”代碼講解 第16張
C語言“最大公約數和最小公倍數”代碼講解 第17張

(09)接下來運行,我們輸入 6,3 其中3就是最大公因數,6是最小公倍數。到這裏就結束了。但其實代碼還存在問題。當我們輸入的數沒有公因數時,就出bug。這個自己可以開動腦筋去解決。

C語言“最大公約數和最小公倍數”代碼講解 第18張
  • 文章版權屬於文章作者所有,轉載請註明 https://miaozhigu.com/jy/jiaoliu/6mv4xv.html