2016-10-23 149 views
-5
int Day = 20; 
while (Day >= 1) 
{ 
    cout << Day << " "; 
    userNum = Day/2; 
    cin >> Day; 
} 

我不明白爲什麼循環不起作用。我想輸出爲20 10 5 2 1雖然循環將不會繼續

任何幫助,如果可能的話解釋。

+0

到底是什麼這個代碼什麼意思? '日'等於20,所以循環將不會開始,因爲它不等於1。 – ForceBru

+0

20!= 1 ...也許你的意思是'while(Day> = 1)...並且在循環頭後刪除分號。 –

+0

對不起有一個老版本的任務,仍然無法正常工作 – KeVy0

回答

2

我不明白的cin目的是在這裏,但如果你想你的問題所要求的輸出:

// Example program 
#include <iostream> 
#include <string> 

using std::cout; 
using std::endl; 

int main() 
{ 
int Day = 20; 
    while (Day >= 1) 
    { 
    cout << Day << " "; 
    Day /= 2; 
    } 
} 

你可以看到你停下時Date達到1或小於1 。然後你重複分2次。首先,它變成20;那麼你將它除以2並達到10;那麼你再次除以二,達到5;那麼5/2是2.5但是輪到2;然後2/2是1,最後退出程序。

Here它被編譯。

0

試試這個

int Day = 20; 
while (Day >= 1) 
{ 
    cout << Day << " "; 
    Day = Day/2;  
}