2013-04-17 75 views
0

好的,我還需要使用單獨的10個元素的數組,在增加5%後計算和顯示每個高度。有任何想法嗎?對不起,這一切。這是我第一次使用數組。在數組中顯示最小值

#include <iostream> 

using namespace std; 

int main() 
{ 
    int MINheight = 0; 
    double height[10]; 
    for (int x = 0; x < 10; x = x + 1) 
    { 
     height[x] = 0.0; 
    } 

    cout << "You are asked to enter heights of 10 students. "<< endl; 
    for (int x = 0; x < 10; x = x + 1) 
    { 
     cout << "Enter height of a student: "; 
     cin >> height[x]; 
    } 

    system("pause"); 
    return 0; 
} 
+2

使用現有的算法。 'std :: min_element'就在你家門口。 – chris

+0

我道歉,但我不知道如何使用std :: min_element,有人可以解釋嗎?我目前正在尋找一個例子 – user2040308

+0

如果你首先閱讀迭代器可能會很好。有了這些知識,並且知道數組可以衰減爲指向其第一個元素的指針,那麼可以將這些指針用作算法的隨機訪問迭代器,或者使用諸如「std :: begin」和「std :: end」之類的東西,它與純數組一起工作,以及更好的'std :: array'。 – chris

回答

3

簡單的循環是這樣的:

MINheight = height[0]; 
for (int x = 1; x < 10; x++) 
{ 
    if (height[x] < MINheight) 
    { 
     MINheight = height[x]; 
    } 
} 
std::cout << "minimum height " << MINheight <<std::endl; 

側面說明:你不應該命名一個局部變量開頭大寫字母,使用x作爲數組索引也是一種奇怪的,雖然他們都做工精細,但不好作風。

您也可以使用std::min_element如下:

std::cout << *std::min_element(height,height+10) << std::endl; 
           //^^using default comparison 

爲了把元素在不同的陣列增加高度並顯示它們,請執行以下操作:

float increasedHeights[10] = {0.0}; 
for (int i = 0; i < 10; ++i) 
{ 
    increasedHeights[i] = height[i] * 1.05; 
} 

//output increased heights 
for (int i = 0; i < 10; ++i) 
{ 
    std::cout << increasedHeights[i] << std::endl; 
} 
+0

好吧,我還需要使用單獨的10個元素的陣列,在增加5%後計算並顯示每個高度。有任何想法嗎?對不起,這一切。這是我第一次使用數組。 – user2040308

+0

@ user2040308看到更新的帖子?這是什麼意思,通過增加分離數組的高度? – taocp

1

本質上講,你可以跟蹤的最小值作爲被進入,所以:

cout << "You are asked to enter heights of 10 students. "<< endl; 

MINheight = numerical_limits<int>::max 
for (int x = 0; x < 10; x = x + 1) 
{ 
    cout << "Enter height of a student: "; 
    cin >> height[x]; 
    if(height[x] < MINheight)MINheight = height[x]; 
} 
cout << "Minimum value was: " << MINheight << "\n"; 

這樣做是創建其值的變量的最大可能值,則當過用戶輸入一個新的值,檢查它是否小於當前的最小值,如果存儲的話。然後在最後打印出當前的最小值。

+0

好的,我還需要使用單獨的10個元素的陣列,在增加5%後計算和顯示每個高度。有任何想法嗎?對不起,這一切。這是我第一次使用數組。 – user2040308

+0

基本上,像以前一樣,創建一個新的double數組,通過數組運行(如上),並將每個值設置爲1.05 *高度數組上相同索引處的值並打印出該計算值。夠簡單? :P – Sinkingpoint

相關問題