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

Я не понимаю, почему цикл не работает. Я хочу, чтобы выход был 20 10 5 2 1Пока цикл не продолжится

Любая помощь и если возможно с объяснениями.

+0

Какого черта этот код означает? «День» равен 20, поэтому цикл даже не начинается, так как он не равен единице. – 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;  
} 
Смежные вопросы