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

Похождения коня - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ HeapAlloc или Malloc http://www.cyberforum.ru/cpp-beginners/thread709751.html
Вот такой вопрос... Нашел информацию, что HeapAlloc работает быстрее, чем Malloc, но с чем это связано? С тем, что под HeapAlloc надо выделять кучу, а malloc берет сразу всю свободную? Подскажите, почему быстрее работает HeapAlloc? Пожалуйста...
C++ Палиндром рекурсивно Задача: найти в слове палиндром и вывести на экран: 1). количество удаляемых символов чтобы получился палиндром. 2). Сами удаляемые символы Проблема: пункт №2 в моём задании Помогите мне пожалуйста вывести эти символы, у самого уже сил просто нету думать как и что. Устал размышлять и предполагать как и что должно делаться. Буду крайне благодарен за помощь. #include <stdio.h> #include... http://www.cyberforum.ru/cpp-beginners/thread709739.html
перенос кода в С++ C++
var e,x,t,s:real; n:integer; begin repeat write('|x|<1 x='); read(x); until abs(x)<1; repeat write('0<e<1 e='); read(e);
Определить количество строк матрицы, не содержащих ни одного нулевого элемента C++
Дана целочисленная квадратная матрица. Определить: • количество строк, не содержащих ни одного нулевого элемента; • максимальное из чисел, встречающихся в заданной матрице более одного раза.
C++ Нужна подсказка в разборе структуры файла http://www.cyberforum.ru/cpp-beginners/thread709723.html
Доброго всем времени суток! Имеется некий бинарный файл. Нужно его прочитать, вытащить из него всё необходимые значение и, по возможности изменив, записать обратно в том же виде. Встаёт вопрос, каким методом наиболее эффективно можно разобрать структуру этого файла? Заранее благодарю за любой совет!
C++ Анализ свойств и возможностей файловой системы UNIX Вобшем в универе задали курсач . У кого была подобная тема ( Анализ свойств и возможностей файловой системы типа Fat или NTFS) просьба отписаться. Литература , части кода , возможно готовый курсовик , все пригодится. 1. Исходные данные: • известны характеристики магнитных дисков (до 32 Мбайт, 33-64 M6ai 65-128Мбайт, 129-255Мбайт, 256-511 Мбайт, 512-1023 Мбайт, 1024-2047 M6ai 2048-8192... подробнее

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

Похождения коня - C++

26.11.2012, 17:27. Просмотров 562. Ответов 8
Метки (Все метки)

Добрый день!
Пишу программу для решения шахматной задачи "Похождения коня," ( Условие : Требуется обойти конем все 64 клетки шахматной доски так, чтобы на каждой клетке конь был только один раз. Доска - 8х8 ) и возникла проблема : после хода коня нужно проверить все клетки, на которые он мог бы пойти, считать их значение и записать его в другой массив. Функцию для этого я написал, и программа выполняет всё что нужно, но после выполнения возникает ошибка APPCRASH вот описание ошибки :
Кликните здесь для просмотра всего текста
Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: tt2.exe
Версия приложения: 0.0.0.0
Отметка времени приложения: 50b364b6
Имя модуля с ошибкой: tt2.exe
Версия модуля с ошибкой: 0.0.0.0
Отметка времени модуля с ошибкой: 50b364b6
Код исключения: c0000005
Смещение исключения: 0002c7de
Версия ОС: 6.1.7600.2.0.0.256.1
Код языка: 1049
Дополнительные сведения 1: 0a9e
Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789
Дополнительные сведения 3: 0a9e
Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789

Вот код программы:
Кликните здесь для просмотра всего текста
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
115
116
117
118
119
120
121
#include <iostream>
 
using namespace std;
    void PrintchArrayBoard(char *pchArrayBoard,char chArrayBoard[8][8]) // Печать доски (char массив)
    {
        for (int i = 0; i < 8; i++) //вывод массива
        {
            pchArrayBoard = chArrayBoard[i];// строки
                for (int j = 0; j < 8; j++)
                {
                    std::cout <<" "<< *(pchArrayBoard+j); //столбцы
 
                }
            cout <<endl;
        }
    }
    void PrintintArrayBoard(int *pintArrayBoard,int intArrayBoard[8][8]) // Печать доски (int массив)
    {
        for (int i = 0; i < 8; i++) //вывод массива
        {
            pintArrayBoard = intArrayBoard[i];// строки
                for (int j = 0; j < 8; j++)
                {
                    std::cout <<" "<< intArrayBoard[i][j]; //столбцы
 
                }
            cout <<endl;
        }
    }
    void Move(int movex,int movey, char *pchArrayBoard,char chArrayBoard[8][8]) // Функция движения (отмечает ход в другом, символьном массиве)
    {
    pchArrayBoard = chArrayBoard[movex];
    *(pchArrayBoard+movey)= 'y';
    }
    void ReductionPossibleMoves(int movex,int movey, int *pintArrayBoard,int intArrayBoard[8][8],int *pintArrayPossibleMovement) // Инициализация возможных ходов
    {
        int mx, my, y, x;
        //Просмотр доступных ходов
        for (int i = 0;i < 8; i++)
        {
            mx=movex;my=movey;
                 if (i == 0) {x = -1; y = -2;} // перебор возможных ходов
            else if (i == 1) {x = -1; y =  2;}
            else if (i == 2) {x =  1; y = -2;}
            else if (i == 3) {x =  1; y =  2;}
            else if (i == 4) {x =  2; y =  1;}
            else if (i == 5) {x =  2; y = -1;}
            else if (i == 6) {x = -2; y =  1;}
            else if (i == 7) {x = -2; y = -1;}
            mx+=x;
            my+=y;
            if ((mx>=0) && (mx<=8) && (my>=0) && (my<=8)) // установка границы
            {
            pintArrayBoard = intArrayBoard[mx];
 
            *(pintArrayBoard + my) -= 1; // Уменьшение значения клетки(возможного хода) на 1
 
            pintArrayPossibleMovement[i] = *(pintArrayBoard + my); // Передача значения из одного массива в другой,
                                                                   // если строку закоментировать, то ошибки не будет.
 
            }
 
        }
    }
    //void ChoiceMove (int movex, int movey,int intArrayPossibleMovement[8], int *pintArrayPossibleMovement,int intArrayBoard[8][8], int *pintArrayBoard)
    //{
 
    //}
int main()
{
    srand(time(NULL));
    int movex = 2 + rand() % 4, movey = 2 + rand() % 4;// Случайный первый ход
    cout<<movex<<movey<<endl<<endl<<endl;
        char chArrayBoard[8][8] =
        {
            {'x','x','x','x','x','x','x','x'},
            {'x','x','x','x','x','x','x','x'},
            {'x','x','x','x','x','x','x','x'},
            {'x','x','x','x','x','x','x','x'},
            {'x','x','x','x','x','x','x','x'},
            {'x','x','x','x','x','x','x','x'},
            {'x','x','x','x','x','x','x','x'},
            {'x','x','x','x','x','x','x','x'}
        };
        int intArrayBoard[8][8] =
        {
            {2,3,4,4,4,4,3,2},
            {3,4,6,6,6,6,4,3},
            {4,6,8,8,8,8,6,4},
            {4,6,8,8,8,8,6,4},
            {4,6,8,8,8,8,6,4},
            {4,6,8,8,8,8,6,4},
            {3,4,6,6,6,6,4,3},
            {2,3,4,4,4,4,3,2}
        };
 
        int intArrayPossibleMovement[8] = {0,0,0,0,0,0,0,0}; // массив для хранения значений клеток возможных ходов.
        int *pintArrayPossibleMovement;
 
    char *pchArrayBoard;
    int *pintArrayBoard;
 
 
    ReductionPossibleMoves(movex, movey,pintArrayBoard,intArrayBoard,pintArrayPossibleMovement);
 
    //ChoiceMove(movex, movey,intArrayPossibleMovement,pintArrayPossibleMovement,intArrayBoard, pintArrayBoard);
 
    Move(movex,movey,pchArrayBoard,chArrayBoard);
 
    PrintintArrayBoard(pintArrayBoard,intArrayBoard);
 
    PrintchArrayBoard(pchArrayBoard,chArrayBoard);
 
    for (int i = 0;i<8;i++)
    {
        if (pintArrayPossibleMovement[i]>=0 && pintArrayPossibleMovement[i]<8)
        cout<<pintArrayPossibleMovement[i];
    }
 
    return 0;
    }

Хотелось бы узнать, в чём проблема, и как её решить. Буду благодарен за помощь!

Добавлено через 12 минут
Ошибка в строке 58 , если её закомментировать - ошибки не будет.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru