Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 04.06.2011
Сообщений: 3

Ошибка в книге Скиены "Олимпиадные задачи по програмированию"?!

10.01.2012, 16:54. Показов 1521. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Итак, всем привет Начал я на днях читать книгу Скиены, сейчас на главе про структуры даных.
В книге приведен премер задачи "Сборы на войну" где используются очереди.
Но проблема в том что програма не работает.
Немного почитав про очереди увидел что в примере они об’являются неправильно(?), а некоторые функции которые использует автор вобще несуществуют(init_queue).
Привожу код програмы(откоментировал некоторые проблемные места):
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
#include <iostream>
#include <queue>
using namespace std;
#define ncards 52   
#define nsuits 4   
 
char values[] = "23456789TJQKA";
char suits[] = "cdhs";
 
int rank_card(char value, char suit)
{
    int i,j;
    for(i=0;i<(ncards/nsuits);i++)
        if (values[i]==value)
            for (j=0;j<nsuits;j++)
                if (suits[j]==suit)
                    return (i*nsuits + j);
    printf("Warning:bad input value=%d, suit=%d\n",value,suit);
}
 
char suit(int card)
{
    return (suits[card % nsuits]);
}
 
char value(int card)
{
    return (values[card/nsuits]);
}
 
void war(queue *a, queue *b)         //здесь ошибка, вероятно нада указать тип очередей
{
    int steps=0;
    int x,y;
    queue c;                                  //здесь автор почемуто не указал тип очереди queue<тип> name
    bool inwar=false;
    init_queue(&c);                         //вот такой функии похоже нет
    while ((!empty(a))&&(!empty(b))&&(steps<maxsteps)){
        steps+=1;
        x = dequeue(a);
        y = dequeue(b);
        enqueue(&c,x);
        enqueue(&c,y);
        if (inwar)  {
            inwar=false;
        }
        else
        {
            if (value(x)>value(y))
                clear_queue(&c,a);               //опять компилятор сообщает что такой функции нет
            else
            if (value(x)<value(y))
                clear_queue(&c,b);         //ну и тут естественно
            else
            if (value(x)==value(y))
                inwar=true;
        }
    }
    if (!empty(a) && empty(b))
        printf("a wins in %d steps\n", steps);
    else
    if (empty(a) && !empty(b))
        printf("b wins in %d steps\n", steps);
    else
    if (!empty(a) && !empty(b))
        printf("game tied after %d steps\n", steps);
    else
        printf("a and b tied in %d steps",steps);
}
 
main()
{
    queue  decks [2];                   
    char  value,suit,c;         
    int   i;      
    while(TRUE) {
        for(i=0;i<=l;i++){
            init_queue(&decks[i]);
            while((c=getchar())!='\n') {
                if (c == EOF) return;
                if (c !=' '){
                    value = c;
                    suit = getchar();
                    enqueue(&decks[i], rank_card(value, suit));
                }
            }
        }
        war(&decks[0],&decks[1]);
    }
}
А вот ссылка на [ссылка удалена], задача начинается с 35 страницы.
Спасибо за помощь.

 Комментарий модератора 
Запрещено давать ссылки на скачивание программ и книг с файлообменников (рапида, депозит и т.п.) и других сайтов (форумов), если есть возможность их скачать с сайтов фирм-производителей.
Правила форума


Добавлено через 48 минут
Я бы попросил модераторов вернуть ссылку, так как она вполне официальная и ведет на books.google.com
где автор сам выложил книгу для ознакомления.
Итак вот ссилка на книгу:
http://books.google.com.ua/boo... ec=reviews
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.01.2012, 16:54
Ответы с готовыми решениями:

задачи по програмированию
Помогите пж) Добавлено через 3 минуты Любую задачу из списка

Абрамов - задачи по програмированию
Помогите сделать задачу Абрамова на лабораторную работу, очень нужно срочно !! В данной действительной матрице размером n×m (n=3, m=3)...

Олимпиадные задачи
Дорогие друзья! Обращаюсь к вам с необычной просьбой. В прошлом году здесь кто-то выложил ответы на олимпиадные задачи, которые проводились...

3
0 / 0 / 0
Регистрация: 04.06.2011
Сообщений: 3
12.01.2012, 02:07  [ТС]
Все, разобрался....
Ем, как выяснилось автор просто показал несколькими страницами ранее как все ет реализовать самому...
А я вот пропустил и подумал что он STL использует...
Извините, вопрос ищерпан.
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
12.01.2012, 10:26
Цитата Сообщение от ultrafast Посмотреть сообщение
Все, разобрался....
Ем, как выяснилось автор просто показал несколькими страницами ранее как все ет реализовать самому...
А я вот пропустил и подумал что он STL использует...
Извините, вопрос ищерпан.
Вы хотели сказать "исчерпан"...
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
13.01.2012, 10:00
у тебя там main() без возвращаемого значения определена, а в C++ такое не допускается
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.01.2012, 10:00
Помогаю со студенческими работами здесь

Олимпиадные задачи
две задачи g-1 h-2

Олимпиадные задачи
Помогите пожалуйста решить олимпиадные задачи Правило 5.16: &quot;Запрещено создавать темы с множеством вопросов во всех разделах,...

Олимпиадные задачи
Здравствуйте! Есть такая задача: Вокруг считающего стоят N человек,один из которых назван первым, а остальные пронумерованы по часовой...

Олимпиадные задачи
Вопрос: имеет ли практический(коммерческий, денежный в будущем) смысл решения олимпиадных задач по программированию? С одной стороны мне...

Олимпиадные задачи
Посоветуйте хороший сайт, на котором есть много олимпиадных задач?


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru