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

Цикл for и 56 карт - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Печать слова копейка в согласованном падеже http://www.cyberforum.ru/cpp-beginners/thread160195.html
какая для целого числа печатает слово копейка в согласованном падеже.
C++ Не могу понять в чем ошибка: реализация односвязного списка #include <iostream> using namespace std; struct list { int key; list *next; }; void addList(list *start); http://www.cyberforum.ru/cpp-beginners/thread160183.html
Функция, определяющая достижение начала файла: есть ли такая? C++
Собственно мне нужна функция, проверяющая достижение начала файла, типа feof только наоборот. Гуглил, ничего не нашел =(
Есть исходники браузера? C++
Есть у кого-нибудь исходники браузера? П.С.Администрации сделайте в каждом разделе форума чат, примерно для таких вопросов. Добавлено через 6 минут П.С. Исходники нужны на чистом Си
C++ Вычислить произведение ряда http://www.cyberforum.ru/cpp-beginners/thread160131.html
Господа,нужна помощь. Кому не лень,не трудно,помогите чем могите. Собственно вот: Блок А 1. В области 12 районов. Известны количество жителей каждого района ( в тысячах человек) и плотность населения в нем ( тыс. чел./ км2). Определить общую площадь территории области. (задачи без использования массивов). 2. Дан массив целых чисел (n=12), заполненный случайным образом числами из...
C++ Непонятная операция Всем доброго времени суток! Помогите разобраться, ранее не встречал: Есть enum Sute {clubs,diamonds,hearts,spades} в main() мы создаем колоду карт и заполняем. Так вот при заполнении в цикле есть такая операция: Suit su = Suit(j/13); С левой частью все ясно, а вот с правой не очень. Почему мы не работаем с объектом Suit, а как-то напрямую это делаем...вообще не ясно. подробнее

Показать сообщение отдельно
half-node
21 / 18 / 3
Регистрация: 12.08.2010
Сообщений: 206
18.08.2010, 22:44     Цикл for и 56 карт
Выводит 14! карт в каждой строке.
Я не понял как это получается.

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
// 7_6.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>
 
using namespace std;
 
enum Suit {clubs, diamonds, hearts, spades};
enum Man {Jake, Nik, Bob, Arni};
const int jack =10;
const int queen=11;
const int king =12;
const int ace = 13;
 
 
 
 
class card
{
private:
    int number;
    Suit suit;
public:
    card()
    {};
    void set(int n, Suit s)
    {
        suit =s;
        number =n;
    }
    void display();
};
 
void card::display()
{
    if(number>=2 && number<10)
        cout << number;
    else
    {
        switch(number)
        {
        case jack: cout << 'J'; break;
        case queen: cout << 'Q'; break;
        case king: cout << 'K'; break;
        case ace: cout << 'A'; break;
        }
    }
    switch(suit)
    {
    case clubs: cout << static_cast<char>(5);break;
    case diamonds: cout << static_cast<char>(4);break;
    case hearts: cout << static_cast<char>(3);break;
    case spades: cout << static_cast<char>(6);break;
    }
}
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    card deck[52];
    int j;
 
    cout << endl;
    for(j=0;j<52;j++)
    {
        int num = (j%13)+2;
        Suit su = Suit(j/13);
        deck[j].set(num,su);
        
        // выводил сразу для проверки...
        /*deck[j].display();
        cout << "   ";
        if(!((j+1)%13))
            cout << endl;*/
    }
 
    cout << "Deck:\n";
    for(j=0;j<52;j++)
    {
        deck[j].display();
        cout << "   ";
        if(!((j+1)%13))
            cout << endl;
    }
 
    // перемешиваем
    srand(time(NULL));
    for(j=0;j<52;j++)
    {
        int k = rand()%52;
        card temp = deck[j];
        deck[j] = deck[k];
        deck[k] = temp;
    }
    ////////////////
 
    cout << "\nShuffel deck:\n";
    for(j=0;j<52;j++)
    {
        deck[j].display();
        cout << "   ";
        if(!((j+1)%13))
            cout << endl;
    }
 
 
    getch();
    return 0;
}
Еще вопрос, касающийся остатка от деления
C++
1
int num = (j%13)+2;
Как при j равном, скажем, единице, мы получаем число 3?
1/13 = 0,076
0,076 +2 = 2,076
Откуда 3?
Объясните пожалуйста данную арифметическую операцию.

в случае:
C++
1
if(!((j+1)%13))
я понимаю. Мол, если остаток равен нулю, то...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru