2012-02-07 123 views
1

我想只用for循環編寫簡單的程序簡單的邏輯(if then聲明允許我認爲),我遇到了麻煩,從一堆用戶輸入「計算」最高的雪日期。for循環C++

這個程序寫到下跌的天數到一個文本文件中雪用戶輸入量。我應該也列出下跌最高的雪量,但(?)知道如何做到這一點的for循環。

for (dayNumber = 1; dayNumber <= numOfSnowDays; dayNumber++) 
    { 
     mostSnowDay = dayNumber; 
     cout << "Day number: " << dayNumber << endl; 
     cout << "Enter amount of snow: " << endl; 
     cin >> amtOfSnow; 
     totalSnow = totalSnow + amtOfSnow; 
     outFile << setfill(' ') << setw(15) << dayNumber << setw(25) << setprecision(2) << amtOfSnow << endl; 

     if (dayNumber == 1) 
     { 
      mostSnowDay = dayNumber;        
     } 
     else if (amtOfSnow < mostSnowDay) 
     { 
       //dont know what to put here or even if this is right. 
     } 

    }; 
+0

檢查我的編輯,我想你錯過了「不」有.... Kindof反轉句子的意思:) – littleadv 2012-02-07 21:37:30

+1

雪似乎是今天的熱門話題功課:-) HTTP:/ /stackoverflow.com/questions/9181299/outfile-c-now-writing-to-output-text/9182491 – 2012-02-07 21:48:20

回答

3

你需要一些額外的變量有:

if (dayNumber == 1) 
{ 
    mostSnowDay = dayNumber; // default - most amount of snow in first day 
    mostAmtOfSnow = amtOfSnow; // 
} 
else if (amtOfSnow > mostAmtOfSnow) //if subsequent day has more snow 
{ 
    mostSnowDay = dayNumber;  //mark the day 
    mostAmtOfSnow = amtOfSnow; //change largest amount of snow 
} 

編輯:感謝丹F.在循環的開頭刪除的mostSnowDay = dayNumber;指令,它會在每次重新初始化您的變量循環進入。

+2

他也需要消除'mostSnowDay = dayNumber;從所述福爾循環的頂部'線。 – 2012-02-07 21:39:07

+0

哦好吧,我覺得現在的工作,讓我測試 – user1193717 2012-02-07 21:40:56

+1

@DanF我錯過了,謝謝。編輯! – 2012-02-07 21:41:03

0

你需要開始與外面的兩個變量的循環,保持maxSnowfall的軌跡和maxSnowfallDate:

int maxSnowfallDate; 
    int maxSnowfall; 
在for循環

一次,你一般會進行測試,以查看是否有新的最大的一天有如果是這樣,你需要記錄新的最大值和新的最大值的日期。

if(curSnowfall > maxSnowfall) { 
    maxSnowfall = curSnowfall; 
    maxSnowfallDate = dayNumber; 
    } 

這是常見的只是初始化maxSnowfall爲0以外的for循環,每次測試,但它聽起來像任務是使用最初沒有分配到任意的技術(在這種情況下, 0)值。相反,您只需在循環的第一次運行時分配,然後在循環中隨後的每次運行中測試新的最大值。

if(dayNumber == 1) { 
    maxSnowfallDate = dayNumber; 
    maxSnowfall = curSnowfall; 
} else { 
    if(curSnowfall > maxSnowfall) { 
    maxSnowfall = curSnowfall; 
    maxSnowfallDate = dayNumber; 
    } 
}