Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Psixodelik
40 / 39 / 5
Регистрация: 27.11.2009
Сообщений: 100
1

while и последний повтор цикла

27.11.2009, 00:22. Просмотров 1170. Ответов 3
Метки нет (Все метки)

Привет всем...дело вот в чём: я пишу блекджек(консольную версию) и в процессе наткнулся на трудность...у пользователя есть выбор взять карту или нет(цифра 1 что бы взять и цифра 2 что бы нет), что бы не вдаваться в теор.вер. и использовать if, я решил воспользоваться while...суть такова что пока нажимаеться цифра 1 всё норм, при использовании 2-ого пункта цикл прокручиваеться в последний раз...в этом и проблема...чем она вызвана я понимаю, а вот как обойти не знаю... кусок кода ниже

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
             while (k != 2) 
    {
        cout << "Нажмите 1 что бы взять карту " << endl;
                 cout << "Нажмите 2 что бы оставить карты " << endl;
        cin >> k;
    
    
     for (int i = 0; i <=1; i++) 
        ik = 0 + rand() % 5; // выброс случайной карты игрока
 
    for (int i = 0; i <=1; i++)
        im = 0 + rand() % 3; // выброс случайной масти игрока
 
    cout << "Ваша карта " << a[ik] << b[im] << endl << endl;
    s = s + a[ik];
    cout << "Сумма карт = " << s << endl;
 
    if (s > 21)
        cout << "Перебор. Вы проиграли!";
    else 
        if (s == 21)
            cout << "Блекджек. Вы выйграли, поздравляю !";
     }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2009, 00:22
Ответы с готовыми решениями:

Повтор цикла
Есть некий цикл, который несколько раз полностью повторяется в процессе выполнения программы. как я...

Повтор цикла по числу в TextBox
Как сделать так,чтобы цикл выполнялся несколько раз при условии ввода некоторого числа в...

Повтор итерации цикла по условию
День добрый! var i:integer; begin Memo1.Text:= '1'+#13#10+ '2'+#13#10+ ...

Повтор цикла при определенном условии
Как такое сделать? IF True Then Все_сначала

Убрать последний проход цикла WHILE
Сделал задачу, но она суммирует ненужный последний элемент. Как убрать этот элемент? Для теста...

3
M128K145
Эксперт JavaЭксперт С++
8340 / 3561 / 420
Регистрация: 03.07.2009
Сообщений: 10,708
27.11.2009, 00:27 2
Psixodelik, используй do{}while(...)
1
valeriikozlov
Эксперт С++
4691 / 2517 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
27.11.2009, 00:30 3
Psixodelik, Если я правильно понял что Вы хотите, тогда предлагаю вариант такой вводите еще одну переменную, например int a, присваиваете ей значение 1 (перед while). while переписываете так: while(a==1), в строке 18 пишите:
C++
1
2
if(s>20)
a=0;
и все.
0
Psixodelik
40 / 39 / 5
Регистрация: 27.11.2009
Сообщений: 100
27.11.2009, 00:38  [ТС] 4
valeriikozlov, вариант хороший, но в таком случае нарушиться алгоритм...так как игрок может остановиться например и на сумме = 17...но всё равно спасибо...учту варинт


M128K145, спасибо за подсказку...попробую
0
27.11.2009, 00:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2009, 00:38

составить блок-схему алгоритмов для решения задач с использованием трех циклов цикла с постусловием, цикла с предусловием и цикла с параметрами
помогите составить блок-схему алгоритмов для решения задач с использованием трех циклов цикла с...

Поменять местами в каждом столбце матрицы последний положительный и последний отрицательный элементы.
нужно составить программу по заданию: Поменять местами в каждом столбце матрицы последний...

Поменять местами в каждом столбце матрицы последний положительный и последний отрицательный элементы
Поменять местами в каждом столбце матрицы последний положительный и последний отрицательный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru