2011-05-03 25 views
0

中的一個整數數組0-100任何人都可以寫一個函數來計算每個可能值的出現次數然後覆蓋原始數組? (不,這不是功課,它的實踐檢驗,所以我可以學習)C++找到數組中出現的數字

+5

發佈迄今已嘗試的代碼。 – 2011-05-03 20:48:53

+0

用什麼覆蓋它? – forsvarir 2011-05-03 20:49:22

+2

你好,@JessicaL。歡迎來到Stack Overflow。你試過什麼了?你遇到了什麼問題? – 2011-05-03 20:50:57

回答

2
void 
count_sort(int min, int max, int & A[], int items) { 

這裏是一個小東西,讓你開始。我們知道A[]的任何成員只能保存從0到100的數字。我們需要一個地方來保留每個數字的計數(即0到100)。我們自己的另一個數組,每個可能的數字計數器,用於計數的這樣一個集自然的地方:

int counts[101];     // there are 101 numbers in 0 ... 100 inclusive 
int i;       // we'll use this an an index into the counts[ ] array 
int j;       // this we can use as an index into A[] 

我們不能忘記,使計數的所有成員[]數組爲零,否則我們所有的總數將是無稽之談:

for (i = 0; i < 101; i++) { // so let's preset all of the counts to 0 
    counts[i] = 0; 
} 

現在你可以從上到下閱讀輸入數組。當你從數組中取一個數字時,用它作爲count []數組的索引,在這裏你保持你找到的數字的總數。因此,假設您檢索輸入數組數35:

i = next_input_array_number(); // i will be 35 after this is executed 

所以,現在你必須(在i)的下一個數字;你有一個地方來計算它的發生:counts[35]。你現在怎麼增加counts[35]

然後繼續從輸入數組中逐個獲取數字,直到您看到它們全部爲items。當你完成輸入數組時 - 也就是說,在你看完並計算完所有數字之後 - 你已經完成了,並且counts []數組將保存每個數字在輸入數組中看到的總次數。

你要做的是弄清楚如何從輸入數組中獲取數字;也就是說,你必須用一些代碼替換「next_input_array_number();」。

請發佈您將用於從輸入數組中檢索數字的代碼。

相關問題