2012-03-25 180 views
0

我需要for循環在程序中執行4次,然後在第四次退出並給出結果的總數。For循環無法正常工作

它不應該算X作爲廢票

三個總計和寵壞的票數被初始化爲0。

現在for循環如下,從1去投票站的數量。

這個循環內部是一個while循環。屏幕上會出現提示消息,詢問投票人他或她想投票的候選人。然後輸入選民的選擇。

while循環內部是一個switch語句來增加正確的總和。默認的 選項用於計算損壞票數。

當進入供選擇X while循環退出。

當for循環退出時,被顯示的三個總數和的廢票數。

這裏是我的代碼

int main() 
{ 
    const int NR_VOTING_STATIONS = 4; 
    int votesForA, votesForB, votesForC, spoiltVotes; 
    char vote; 

    // initialise totals 
    votesForA = 0; 
    votesForB = 0; 
    votesForC = 0; 
    spoiltVotes = 0; 

    // LOOP of INTEREST START 
    //loop over the voting stations 
    for (int i = 1; i <= NR_VOTING_STATIONS; i++) 
    { 

     //loop over voters 
     while (vote != 'X') 
     { 
      cout << "Vote for candidate A, B or C : " << endl; 
      cin >> vote; 

      switch(vote) 
      { 
        case 'A': 
         votesForA++; 
         break; 
        case 'B': 
         votesForB++; 
         break; 
        case 'C': 
         votesForC++; 
         break; 
        default: 
         spoiltVotes++; 
      }      
     } 
    } 
    // LOOP of INTEREST END 

    //display results 
    cout << endl << endl; 
    cout << "Total candidate A : " << votesForA << endl; 
    cout << "Total candidate B : " << votesForB << endl; 
    cout << "Total candidate C : " << votesForC << endl; 
    cout << "Total spoilt votes: " << spoiltVotes << endl; 

    system("pause"); 
    return 0; 
} 

感謝

+2

的'for'循環如下對我很好,實際上會執行四次。那麼你的問題到底是什麼? – Joey 2012-03-25 10:09:48

+0

爲什麼把'**'放在'for'循環結構中? – 2012-03-25 10:11:08

+0

讓你的問題更加清晰.... – 2012-03-25 10:12:14

回答

0

如果您需要在for循環執行四次爲什麼不只是圍繞着它在另一個for循環?

1

只是添加在switch

case 'X': 
    break; 

因爲while條件將直到下一輪執行。

1

如果問題是

它不應該算X作爲廢票

答案是添加一個案例:

case 'X': 
    break; 
0

在while循環您應該檢查該投票站中的選民是否仍然可用。由於您對輸入'X'保持中立,因此您應該將其添加爲交換機中的其中一個案例。

您的新while循環應該是這樣的:

Voters_Still_Present = 1; 
while (Voters_Still_Present) 
    { 
     cout << "Vote for candidate A, B or C : " << endl; 
     cin >> vote; 

     switch(vote) 
     { 
       case 'A': 
        votesForA++; 
        break; 
       case 'B': 
        votesForB++; 
        break; 
       case 'C': 
        votesForC++; 
        break; 
       case 'X': 
        //do nothing 
        break; 
       default: 
        spoiltVotes++; 
     } 
     /* Here, find out if voters are still available in the present station. 
      If yes, Voters_Still_Present = 1; else Voters_Still_Present = 0; 
     */    
    } 
+0

我需要程序運行循環4次,每次存儲結果,第四次結束時會顯示每個候選人的總數。謝謝 – user1291092 2012-03-26 11:56:23

+0

我的更新後的for循環只能運行4次 – 2012-03-26 12:00:17

+0

Goodday Ahmed,我宣佈Voters_Still_Present爲int創建的if語句。我對此很陌生,所以請原諒。 if(Voters_Still_Present = 1) {0} {cout <<「」; } else { Voters_Still_Present = 0; } – user1291092 2012-03-26 14:56:49

1

同時,應注意先初始化投票,或使用做{}而(),而不是同時{}