2016-11-13 52 views
-1

夥計們,我是新陣列,我正在做一個程序,需要2個平行陣列找到最低和最高值,然後根據它的值獲取與整數數組相關的最高字符串數組值,然後在屏幕上輸出相關的最低和相關最高結果。對於循環不顯示最低,但在陣列中的第一個

這是我到目前爲止。

#include<iostream> 
#include<string> 
#include<climits> 


//Prototypes: 

using namespace std; 

void getJars(string[], int[], int); 
int getTotal(string[], int[], int); 
int getLowest(string[], int[], int); 


int main() { 

    string salsa[] = { "Mild", "Medium", "Sweet", "Hot", "Zesty" }; 
    const int NUM = 5; 
    int lowest = 0; 
    int total = 0; 
    int jars[NUM]; 

    getJars(salsa, jars, NUM); 
    total = getTotal(salsa, jars, NUM); 
    cout << endl << "Total of Jars Sold This Month: " << total << endl; 
    lowest = getLowest(salsa, jars, NUM); 
    cout << endl << lowest << endl; 


    return 0; 
} 

void getJars(string salsa[], int jars[], int NUM) { 



cout << "Salsa Sales Calculator...\n"; 
cout << "------------------------\n"; 
    for (int i = 0; i < NUM; i++) { 

     cout << "Please Insert the Jar Amount for Each Salsa: "; 
     cout << salsa[i]; 
     cout << " "; 
     cin >> jars[i]; 

     cout << endl; 
    } 


    return; 
} 
int getTotal(string salsa[], int jars[], int NUM) { 

    int total = 0; 

    for (int i = 0; i < NUM; i++) { 

     total += jars[i]; 
    } 

    return total; 
} 

int getLowest(string salsa[], int jars[], int NUM) { 

    int lowest = jars[0]; 
    string lowSalsa; 
    for (int i = 0; i < NUM; i++) { 
     if(lowest > jars[i]) 
      lowest = jars[i]; 


    return lowest; 
} 

我想知道爲什麼它只給了我的數組的第一個值不是最低的。有人可以請幫忙。

+1

使用你的調試器,Luke –

+0

我實際上從來沒有教過使用調試器......我不知道如何 –

+2

然後你需要學習如何使用調試器。瞭解如何使用調試器是每個C++開發人員必備的技能。 –

回答

0

您的for循環在第一次迭代時返回。

for (int i = 0; i < 5; i++) { 
    if(lowest > jars[i]) 
     lowest = jars[i]; 


    return lowest; 
} 

切換「返回」和「}」,它應該更正確地工作。爲了清晰起見,我強烈建議您使用括號以及if語句。 不錯的代碼。

+0

非常感謝,我應該學會如何調試。如果你們有幫助你們學習的視頻,我會非常感激。再次感謝:) –

相關問題