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

Игра быки и коровы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Составить программу, которая содержит текущую информацию о заявках на авиабилеты http://www.cyberforum.ru/cpp-beginners/thread760912.html
Помогите пожалуйста! Пишу программу и столкнулся с проблемой! Вот задание:Составить программу, которая содержит текущую информацию о заявках на авиабилеты. Каждая заявка включает: · пункт назначения; · номер рейса; · фамилию и инициалы пассажира; · желаемую дату вылета. Программа должна обеспечивать: · хранение всех заявок в виде списка; · добавление заявок в список; · вывод заявок по...
C++ Дан двумерный массив размером m*n. Заполнить его с клавиатуры Дан двумерный массив размером m*n. Заполнить его с клавиатуры. 1. Заменить максимальный элемент каждой строки нулем. 2. Вывести первоначальный массив и массив после изменения. http://www.cyberforum.ru/cpp-beginners/thread760904.html
Двумерный массив. Определить номера строк, содержащих только положительные элементы C++
Дан двумерный массив размером m*n. Заполнить его с клавиатуры. Определить номера строк, содержащих только положительные элементы.
C++ Дан двумерный массив целых чисел (4 строки, 5 столбцов). Заполните его с клавиатуры
Дан двумерный массив целых чисел (4 строки, 5 столбцов). Заполните его с клавиатуры. • подсчитайте количество элементов, кратных 3 или 5; • подсчитайте сумму четных элементов 2-й строки; • все положительные элементы обнулите; • выведите массив на экран до и после изменения.
C++ Как собрать проект http://www.cyberforum.ru/cpp-beginners/thread760876.html
#include <winbgim.h> #include <alloc.h> #include <stdio.h> using namespace std; int COL=15, //основной цвет FCOL=0, //цвет заливки ACTION=0; //номер действия int dx=48,dy=1;
C++ Как лучше выделять память: динамичски или в стэке? Я раньше всегда думал, что в стеке происходит более быстрое выделение, но сейчас нашел в интернете одну статью, где было написано: Для хранения аргументов и локальных переменных обычно используется специальная область памяти - стек. Так как операции с ней довольно медленные, большие данные лучше передавать через ссылки или указатели, а для локальных переменных использовать динамическую память.... подробнее

Показать сообщение отдельно
UserAK
70 / 70 / 4
Регистрация: 25.12.2012
Сообщений: 189
Записей в блоге: 2
14.01.2013, 06:36     Игра быки и коровы
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
#include <iostream>
#include <conio.h>
#include <time.h>
 
void GetRandomNumber(char *, const unsigned &);
bool CheckAnswer(const char *, const char *, const unsigned &, unsigned &, unsigned &);
 
int main()
{
    using namespace std;
    const unsigned n_size(4), max_attempts(40);
    char secret_number[n_size+1], user_number[n_size+1];
    unsigned attempts(0), bulls(0), cows(0), difficulty(0), score(0);
    int key(0);
    bool GameOver(false);
 
    while(!GameOver){
        memset(secret_number,'\0',n_size+1);
        GetRandomNumber(secret_number, n_size);
        system("cls");
        cout<<"  A shepherd has a riddle for you, how many cattle in the herd?"<<endl;
        cout<<"  Answer contains 4 digits 1-9 without repetition."<<endl;
        cout<<"  If you see the bulls, then the answer contains your digits."<<endl;
        cout<<"  But if you see a cows, it mean that some digits in its place."<<endl;
        cout<<"  How many attempts you need that would guess? ("<<max_attempts<<" maximum) : ";
        cin>>attempts;
        cout<<endl;
        if(attempts > max_attempts) attempts = max_attempts;
        difficulty = max_attempts/attempts;
        score = max_attempts;
 
        while(attempts){
            cout<<"  You have "<<attempts<<" attempts"<<endl;
            cout<<"  What is the number? : ";
            memset(user_number,'\0',n_size+1);
            cin>>user_number;
            if(CheckAnswer(secret_number, user_number, n_size, cows, bulls)){
                cout<<"  It's true!"<<endl;
                score *= difficulty;
                cout<<"  Congratulations! Your score : "<<score<<endl<<endl; 
                break;
            }else{
                cout<<"  Not quite right. And you see "<<bulls<<" bulls and "<<cows<<" cows."<<endl;
                score--;
                attempts--;
            }
        }
        cout<<"  In a herd of cattle "<<secret_number<<endl;
        cout<<"  \tPlay again? (y/ESC)";
        do{
            int key = _getch();
            if(key == 'Y' || key == 'y') key = 0;
            else if(key == 27){
                GameOver = true;
                key = 0;
            }
        }while(key);
    }
 
    cout<<endl;
    system("pause");
    return 0;
}
 
void GetRandomNumber(char *num, const unsigned &size)
{
    char digits[10] = "123456789";
    srand((unsigned)time(0));
    for(unsigned i=0, rmax=9; i<size; i++){
        unsigned r = rand()%rmax--;
        num[i] = digits[r];
        digits[r] = digits[rmax];
    }
}
 
bool CheckAnswer(const char *secret, const char *answer, const unsigned &size, unsigned &cow, unsigned &bull)
{
    cow = 0; bull = 0;
    unsigned i1, i2;
    for(i1=0; i1<size; i1++){
        for(i2=0; i2<size; i2++){
            if(answer[i1] == secret[i2]){
                if(i1 == i2) cow++;
                else bull++;
            }
        }
    }
    return cow == size;
}
 
Текущее время: 21:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru