2012-06-18 68 views
0

我有一個我不知道的大小(大部分大小爲10), ,其中大部分有1和2,但有時3和4的陣列... 我不能佈雷排序,因爲訂單是importhan,但其他然後,我可以在陣列上所做的一切如何找到一個數組中最大的數字

謝謝:)

+1

你嘗試過這麼遠嗎?你需要知道數組的大小(即使使用'malloc'動態分配)。 – Naveen

+0

用於()循環 – goat

+0

任何標準?使用不使用循環的循環?迭代限制?什麼?這是作業嗎? –

回答

2

迭代,直到你打你的休息狀態。

在迭代時(使用forwhile循環),請記住迄今爲止的最高值並與當前值進行比較。

+0

非常感謝! – AmitM9S6

1

我將只給出僞

max := array[0]; 

for i = 1 to size 
    if(array[i] > max) 
    { 
     max := array[i] 
    } 
+0

這就是我最後所做的,謝謝:) – AmitM9S6

+0

這應該是家庭工作,所以他應該做得更好...... OP沒有公佈他到目前爲止所嘗試的內容。 – Vijay

+0

@peter:這就是爲什麼我給了僞代碼..把它轉換成真正的「C」代碼已經作爲OP的一個練習了。我相信,即使它的作業給予邏輯也沒有錯。 – Asha

1

開始遍歷for循環的數組。 採取一個變量,默認情況下將其中的第一個元素,並假設爲最高。當你遍歷時,當你發現一個元素大於變量中的值時,只需將其替換即可。 在循環結束時,該值包含最高數字。

+0

謝謝,這是我做的:) – AmitM9S6

2

我沒有訪問,現在支持這種權利編譯器,但這裏有一個如何做到這一點在C++ 11的簡要例如:

#include <iostream> 

constexpr int array[10] = { 1, 0, 2, 3, 0, 2, 7, 1, 9, 2 }; 

template<int maxest, int index> 
struct find_biggest_r { 
    enum { value = find_biggest_r<(array[index] > maxest ? array[index]:maxest),index-1>::value }; 
}; 

template<int maxest> 
struct find_biggest_r<maxest,0> { 
enum { value = (array[0] > maxest ? array[0] : maxest) }; 
}; 

template<int index> 
struct find_biggest { 
    enum { value = find_biggest_r<array[index],index-1>::value }; 
}; 

int main() 
{ 
    std::cout << find_biggest<9>::value; 
} 

// 

現在我做曳,在C,你會怎麼做:

int array[4] = { 2, 1, 0, 2 }; 
int biggest = array[0]; 
for (int i = 1; i < 4; i++) { // we've already used array[0] so we start at array[1] 
    if (array[i] > biggest) biggest = array[i]; 
} 
1

你可以試試這個: -

int max = array[0];  
for (int j = 1 to size) 
{ 
    if(array[j] > max) 
    { 
     max = array[j]; 
    } 
} 
相關問題