2015-05-05 54 views
-2

循環的第一個給了我正確的答案,它是最低的0.00。
然而,當我添加第二個for循環跟蹤月份數爲0.00降雨,第一for循環說「南」,而第二個for循環給出正確的答案是2無法獲得for循環工作

#include <iostream> 
using namespace std; 
int main(){ 
    const int NUM = 12; 
    string month[NUM] = {"JAN","FEB","MAR","APR","MAY","JUNE","JULY","AUG","SEPT","OCT","NOV","DEC"}; 
    int counter = 0; 
    float lowest; 
    float rainfall [NUM] = {20.75, 34.60, 0.00, 4.12, 1.00, 72.99, 3.76, 10.00,  8.09, 64.05, 0.00, 30.02}; 
    for (int i = 0; i < NUM; i++) { 
     if ((rainfall[i] < rainfall [i-1]) && (rainfall[i] < lowest)) 
      lowest = rainfall[i]; 
    } 
    cout << lowest << endl; 
    for (int i = 0; i < NUM; i++) 
    { 
     if (rainfall[i] == 0.00) 
     counter += 1; 
    } 
    cout << counter; 
    return 0; 
} 
+0

對不起,在這裏打字錯誤;請看我的代碼,第一個for循環給我正確的答案,它是最低的0.00(當我獨自運行時)。然而,當我添加第二個循環跟蹤月降雨量爲0.00的月份時,第一個for循環表示「nan」,而第二個for循環給出正確的答案,這是2.我做錯了什麼? –

回答

3

初始化lowest

float lowest=100.00; //or any other term, like INT_MAX 

沒有初始化,你不知道會持什麼樣的價值lowest,因此將在進一步計算給出錯誤的價值觀。

+0

哦!謝謝業力,初始化最低後,它工作得很好。 –