2015-09-07 171 views
0
#include <iostream> 
using namespace std; 
int main() 
{ 

const int SIZE = 10; 
int values[SIZE]; 
int count;   
int largest;   
int smallest;  

cout << "Enter 10 integer values and I'll tell you the largest and the smallest number." << endl; 

for (count = 0; count < SIZE; count++) 
{ 
    cout << "\nEnter an integer value: "; 
    cin >> values[count]; 
} 

largest = smallest = values[0]; 
for (count = 1; count < SIZE; count++) 
{ 
    if (values[count] > largest) 
     largest = values[count]; 
    if (values[count] < smallest) 
     smallest = values[count]; 
} 


cout << "\nThe largest value entered is " << largest << endl; 
cout << "The smallest value entered is " << smallest << endl << endl; 


system("pause"); 
    return 0; 

} 

你好傢伙這是我的程序在這裏,它是一個程序,找出最高和最低的數字,我想問幾個問題。找到最高和最低的號碼

對於第一for循環中,它們分配的計數爲0最初,但對於第二循環它被分配到1

另外的部分,其中: 最大=最小=值[0];

爲什麼這麼說?什麼是值[0]?

請幫助

+0

*閱讀*它說什麼。閱讀第一個循環中的程序。在第二個循環中閱讀它正在做什麼。閱讀它與之比較的內容。什麼是進入第二循環時「最大」的值?你現在看到它爲什麼跳過第一個數字嗎? – user3427419

+0

想象一下,如果只有一個數字而不是十個數字。第一個(也是唯一的)數字既是最小的也是最大的,你會如何比較它? –

回答

2
for (count = 0; count < SIZE; count++) 
{ 
    cout << "\nEnter an integer value: "; 
    cin >> values[count]; 
} 

循環的時間SIZE(10)量和獲取用戶的輸入。將每次輸入放入數組(values)。

largest = smallest = values[0]; 

意味着使用的第一項陣列中smallestlargest和啓動。

for (count = 1; count < SIZE; count++) 
{ 
    if (values[count] > largest) 
     largest = values[count]; 
    if (values[count] < smallest) 
     smallest = values[count]; 
} 

是我們通過數組values(我們從用戶得到了)循環和檢查,看看是否largest不大於當前項大。如果不是,我們將largest設置爲較大的值。

我們對smallest執行相同操作,並檢查smallest是否不小於當前項目。如果不是,我們將smallest設置爲較小的值。

+0

所以我明白值[0]是數組中的第一個數字,這是用戶輸入的第一個數字?並且由於我們已經有了一個數字,我們將比以前少運行一次循環,因此count = 1? –

+0

是的。在第二個循環中,程序試圖找出最大值和最小值。在開始該循環之前,它將「最小」和「最大」都設置爲第一項。然後在循環中,它可以將它們中的每一個與數組中的所有其他項(用戶稍後輸入的值)進行比較,以查看它是否可以找到比輸入的第一個值更小或更大的值。 –

+0

謝謝你,現在我明白了。我很難理解什麼值[0]是因爲根據我以前的理解,值[0]將是一個包含0個元素的數組。 –

1

values [size]等於value [10]。
它只是意味着值是一個可以容納10個元素的數組。

for (count = 0; count < SIZE; count++) 
{ 
    cout << "\nEnter an integer value: "; 
    cin >> values[count]; 
} 

此循環在值數組內插入10個元素。 計數初始化爲0,因爲數組索引從零開始,第一個元素需要存儲在第一個索引處。

smallest=largest=value[0] 

這意味着無論儲存在第一個索引或者是最小的或最大的element.By這樣你可以比較的元素的其餘部分與第一要素尋找最小或者這就是爲什麼對於第二循環開始最大計數= 1。

if (values[count] > largest) 
     largest = values[count]; 
    if (values[count] < smallest) 
     smallest = values[count]; 

上述代碼的字面意思是

if(values[1]>value[0]) 

因爲值[0]已被存儲在最小和最大。

希望這個解釋將用於你的目的

+0

非常感謝你的時間,我只是想最後澄清一下。因此,當第一個元素被存儲爲最大和最小的數字時,我們可以這樣說,將它與第二個數字相比較,第二個數字更大,因此第二個數字現在被存儲爲最大數量,等等來回。 –