Форум программистов, компьютерный форум CyberForum.ru

Сдающий карты. "cards_remaining--" одинаково работает и с "--", и без - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Пользователь вводит 8 чисел, вывести числа которые повторяются 2 или больше раз http://www.cyberforum.ru/cpp-beginners/thread1092208.html
Я понимаю, в средние века за такой код сжигали на костре. Но я только учусь. Подскажите как сделать правильнее. #include <iostream> using namespace std; int main() {
C++ Ввести матрицу размером 10*5. Для неотрицательных элементов вычислить их произведение Задача: Ввести матрицу размером 10*5. Для не отрицательных элементов вычислить их произведение. вообще не понимаю как это сделать помогите плз разобраться заранее большое спс http://www.cyberforum.ru/cpp-beginners/thread1092199.html
C++ Требуется идентификатор - как исправить?
class Homeworklist { private: int current_size; public: Homeworklist(){current_size = 0;} Homeworklist(string nameof, Date assigned_date_of, Date due_date_of); bool Addhomew(Homework h); Homeworklist dueafter (Date d); Homeworklist duebefore (Date d);
C++ Не компиллируется функция cout
В DevC++ не компиллируется программа с функцией cout. #include <iostream.h> int main() { cout << "0.12345"; return 0; } Как это исправить?
C++ односвязный список с хэш таблицей http://www.cyberforum.ru/cpp-beginners/thread1092177.html
есть односвязный список успешности студентом поля (фамилия,сер. бал,номер зачетки,группа) как с этого намутить хэш таблицу ? помогите сделать а то не понимаю саму суть хэш функции (( #include <stdio.h> #include <conio.h> #include <string.h> #include <iostream>
C++ почему пишет требуется идентификатор? class Homeworklist { private: int current_size; public: vector<Homework> list; Homeworklist(){current_size = 0;} Homeworklist(string nameof, Date assigned_date_of, Date due_date_of); bool Addhomew(Homework h); Homeworklist dueafter (Date d); подробнее

Показать сообщение отдельно
jimmyknife
0 / 0 / 0
Регистрация: 03.03.2013
Сообщений: 19

Сдающий карты. "cards_remaining--" одинаково работает и с "--", и без - C++

08.02.2014, 19:48. Просмотров 409. Ответов 7
Метки (Все метки)

Всем привет, возник вопрос по поводу программы "сдающий карты", программа с книги "С++ без страха", автора не помню, не столь важно)
Вот код программы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
int rand_0toN1(int n);
void draw_a_card();
int select_next_available(int n);
int card_drawn[52];
int cards_remaining=52;
char *suits[4] = {"hearts", "diamonds", "spades", "clubs"};
char *ranks[13]={"ace", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "jack", "queen", "king"};
int main(){
    srand(time(NULL));
    int n;
    while(1){
        cout<<"Enter some n. or press 0 to EXIT";
        cin>>n;
        if(n==0)
            break;
        for(int i=1;i<=n;i++){
            draw_a_card();
        }
    }
    return 0;
}
void draw_a_card(){
        int r,s,card,n;
        n=rand_0toN1(cards_remaining--);
        card=select_next_available(n);
        r=card%13;
        s=card/13;
        cout<<ranks[r]<<" of "<<suits[s]<<endl;
}
int select_next_available(int n){
    int i=0;
        while(card_drawn[i])
        i++;
    while(n-- >0){
        i++;
        while(card_drawn[i])
            i++;
    }
    card_drawn[i]=true;
    return i; 
}
int rand_0toN1(int n){
    return rand()%n;
}
Есть несколько вопросов по данной программе :
1)в функции void draw_a_card() не понятно, почему
C++
1
n=rand_0toN1(cards_remaining--);
вот тут берут cards_remaining--, а не просто cards_remaining. Пробовал стирать без --, всё вродь так же выходило, но в примере программы оно написано.
2)в функции int select_next_available непонятно вот эти строки :
C++
1
2
while(card_drawn[i])
        i++;
. Зачем сначала делать эту проверку, если она делается далее вот в этом цикле :
C++
1
while(n-- >0)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru