演算法思路:
1、一元硬幣可以分成1、2、5角等組成
2、可以採用控制變數來進行列舉試驗;
3、將可以構成指定元的組合方案進行輸出。
**如下:
#include
intmain()
}}return0;
}輸出結果:
請輸入元:1
可以用1個一角加2個二角加1個5角得到1元
可以用3個一角加1個二角加1個5角得到1元
------
----
----
----
----
----
----
-- process exited after 1.101 seconds with return value 0
請按任意鍵繼續.
..
**分析:
這裡的三重迴圈用的是控制變數的方法,當one=1時迴圈進入two;two=1時迴圈進入five;five=1時發現if語句one+two2+five5==x*10為假,隨即跳出迴圈two++執行後two=2,在進入five迴圈,以此類推;可以在dev c++中設定斷點後,使用debug來觀察下程式的具體執行步驟。
**思路:
只要一種方案就要求對其它存在的方案進行打斷,即跳出當前所有的迴圈語句;
這時候需要用到break語句進行接力。
**如下:
#include
intmain()
}if(exit==1)
break;}
if(exit==1)
break;}
return0;
}**輸出:
請輸入元:2
可以用1個一角加2個二角加3個5角得到2元
------
----
----
----
----
----
----
-- process exited after 1.112 seconds with return value 0
請按任意鍵繼續.
.
**分析:
這個程式巧妙之處在於當最內層迴圈的條件語句不執行時,不會發生打斷其它的迴圈程序,一旦最內層迴圈程序被執行時,設定的break計數器便發生改變,從而影響其它迴圈程序不執行,相當於鏈式反應,直接跳出所有迴圈,這裡break計數變數設定的十分巧妙。
goto函式實現湊硬幣
**如下:
//湊硬幣goto函式
#include
intmain()
}}} out:
return0;
}程式輸出:
請輸入元:2
可以用1個一角加2個二角加3個5角得到2元
------
----
----
----
----
----
----
-- process exited after 1.652 seconds with return value 0
請按任意鍵繼續.
..
**分析:
goto函式可以便捷的實現多重迴圈中的跳轉,不過慎用goto函式以免造成不必要麻煩;另外大型專案為了便於維護,一般不使用goto。
三元組表的轉置 c語言
順序輸入乙個三元組表,先輸出其矩陣形態,然後對其進行轉置並輸出轉置後的矩陣。include define maxsize 100 typedef struct 定義三元組 san typedef struct sanyuan void zhuanzhi sanyuan m,sanyuan t 對三元...
C語言 資料結構 三元組的實現 最終作業版
include include 定義常量 方便操作 可能也沒多方便 define time 1000 typedef int triplet typedef int status 定義一系列三元組的操作 c語言中的函式 初始化 void inittriplet triplet t,status v1...
找出所有滿足條件且不重複的三元組(C語言)
給你乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c 使得 a b c 0 請你找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。void bubblesort int s,int len if flag return int main int...