知識點:列舉
列舉(enumeration)是c的基礎資料結構之一不是構造資料結構,即一一枚舉之意。在列舉思想就是把有限個可能全部列舉出來。
列舉法的本質就是從所有候選答案中去搜尋正確的解,使用該演算法需要滿足兩個條件:(1)可預先確定候選答案的數量;(2)候選答案的範圍在求解之前必須有乙個確定的集合。
列舉法雖然是「暴力求解」,時空效率低,在資料量龐大時更是如此,但是列舉法簡單,容易理解,在小範圍內應用很收到不錯的效果。
習題:let the balloon rise
分析:本題會給出n組測試用例,每組的第一行是m,以下是m行字串(熱氣球的顏色),統計哪種顏色出現次數最多並列印該顏色。用列舉來解題。首先我們用二維字元陣列儲存顏色,定義乙個計數用的陣列,下標一一對應。然後用雙層迴圈遍歷每一行的顏色總共出現了幾次,並存入計數陣列中。對計數陣列進行處理,找到其中最大值的下標,最後用下標輸出顏色。
獻上**:
#include #include#include
#define max_size 1000
int findmaxindex(int ,int
);int
main()
;
char color[max_size][16
];
for(i=0;i)
scanf("%s
",color[i]);
for(i=0;i)
for(j=0;j)
index=findmaxindex(num,n);
printf(
"%s\n
",color[index]);
}return0;
}int findmaxindex(int num,int
n)
return
index;
}
知識點總結報告 1 26
知識點 排序 在c語言中,對一組資料進行排序有多種方法 交換排序 選擇排序 氣泡排序 插入排序 希爾排序 歸併排序 以及快速排序等 其中氣泡排序和交換排序比較簡單,交換排序是又是選擇排序的基礎。以下這個例子包含幾種排序方法,以對分數降序排序為背景,使用鍊錶,順便填補對鍊錶中資料排序的空白。1 inc...
知識點總結報告 1 22
知識點 棧,棧是一種c資料結構,是一種只能在表尾進行增刪操作的線性表,特點是後進入的資料先出來,最先進入的資料最後出來,即filo first in last out 就像桶裝薯片一樣。棧是自己定義的結構體,有順序棧和鍊錶棧。乙個順序棧至少包含乙個陣列,乙個指向已經存入資料的頂部指標和底部指標。佇列...
知識點總結報告 1 20
素數 知識點 判斷乙個數n是素數的方法就是如果從2到sqtr n 之間沒有乙個數能整除n,那麼n就是素數。例題 分析 首先輸入乙個數n然後從n 2 m 開始往下判斷是否是素數,如果是則進一步判斷n m是否是素數,如果都是則輸出並跳出迴圈。題解 1 include 2 include 3 int is...