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

Определить можно ли закрыв какие-либо 3 дороги системы, добиться того, чтобы нельзы было попасть в город - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Для заданных значений аргумента Х вычислить значения суммы S и функции Z http://www.cyberforum.ru/cpp-beginners/thread1207415.html
Для заданных значений аргумента Х вычислить значения суммы S и функции Z. Вычисление S произвести с точностью E. http://www.cyberforum.ru/attachments/410790d1402682095
C++ Сделать задачу, используя структуру содержащую члены-данные и члены-функции Решить задачу, используя структуру содержащую члены-данные и члены-функции. Исходная информация хранится в текстовом файле input.txt, каждая строка которого содержит полную информацию о некотором объекте, результирующая информация должна быть записана в файл output.txt. На основе данных входного файла составить список сотрудников учреждения, включив ... http://www.cyberforum.ru/cpp-beginners/thread1207392.html
C++ Замена %APPDATA%, %WINDIR% и т.п. в строке на реальные каталоги
Здравствуйте! Нужно отлавливать в строках шаблоны типа %APPDATA%, %WINDIR% и т.п. Заменять их на реальные каталоги системы и втыкать обратно. С тем, как из шаблона получить реальный путь разобрался, а вот как автоматизировать отлов и замену разобраться не могу. Написал вот такую функцию, что бы мапить шаблоны bool getPathOfAlias(const wchar_t *szAlias, std::wstring &wsPath); Пытаюсь...
Сохранение/загрузка структуры C++
Всем привет! Подскажите, что я делаю не так и где ошибки? Глаза уже все замылил, не могу нормально сохранить/открыть. По факту, необходимо сохранить только массив точек, которые я проставил на канве и их количество. Может имеются у кого другие варианты решения? Спасибо! Структуры: struct MyPoint
C++ Двумерный массив, обработка матриц http://www.cyberforum.ru/cpp-beginners/thread1207357.html
Дана целочисленная прямоугольная матрица. Определить: 1. количество строк, содержащих хотя бы один нулевой элемент; 2. номер столбца, в котором находится самая длинная серия одинаковых элементов. добавИть с ошибками. т.е По пункту 1. нулевых элементов может и не быть, т.е чтобы писало так: элементов нулевых в строках нет. По пункту 2.одинаковых элементов в столбах может и не...
C++ Запись в файл массива объектов уже 3 часа мучаюсь, не могу записать у файл массив обьектов. у меня есть Redactor *listFigures; int n; как записать и прочитать эти даные, щоб я имел значения n, если у меня класс Редактор имеет вложение классы???? подробнее

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

Определить можно ли закрыв какие-либо 3 дороги системы, добиться того, чтобы нельзы было попасть в город - C++

13.06.2014, 22:13. Просмотров 347. Ответов 1
Метки (Все метки)

По системе двусторонних дорог, определить можно ли закрыв какие-либо 3 из них, добиться того, чтобы из города А нельзя было попасть в город Б.

вот собственно код

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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
#include "stdafx.h"
#include <iostream>
using namespace std;
 
struct stack
{
 int datax;
 int datay;
 stack *next;
};
 
const int n = 6;
int i,j;
int matrix[n][n]= 
{
 {1,1,0,0,1,0},
 {1,1,1,0,1,0},
 {0,1,1,1,1,0},
 {0,0,1,1,1,1},
 {1,1,1,1,1,0},
 {0,0,0,1,0,1}
};
 
 
 
/*=====================PROTORYPE======================*/
void Push(stack *&top, int valuex, int valuey); //добавление в стек пути
stack *Delete(stack *&top); //удаление из стека
void Show(stack *top); //показать стек
stack *Search(stack *&top, int xf, int yf, int **&matrix, int **&visited, int n); //поиск пути
bool Elemente(stack *top, int i, int j); //проверка стека на наличие элемента
/*=====================BODY==========================*/
void main()
{
    setlocale (LC_ALL, "Rus");
    bool flag = false;
    int x, y;
 
    int **visited= new int *[n];
        for (i=0; i<n; i++)
            visited[i]=new int [n];
 
    for (i=0; i<n; i++)
        for (j=0; j<n; j++)
            visited[i][j]=0;
 
    int **matrfunc= new int *[n];
        for (i=0; i<n; i++)
            matrfunc[i]=new int [n];
 
    for (i=0; i<n; i++)
        for (j=0; j<n; j++)
            matrfunc[i][j]=matrix[i][j];
 
    for(i=0; i<n; i++)
    {
        cout<<"\n";
        for(j=0; j<n; j++)
        cout<<" "<<matrfunc[i][j]<<" ";
    }
 
 
    for(int k=0; k<3; k++)
    { 
    
    flag=false;
    
    while(!flag)
    {
    cout<<"\n enter the first coordinate path:";
    cin >> x;
    cout<<"\n enter the second coordinate path:";
    cin >> y;
    if ((x<0 || x>6) || (y<0 || y>6))
    {
        cout<<"\n The data is incorrect, please try again.";
        flag = false;
    }   
    else 
        {
        cout<< "\n The data is correct.";
        matrfunc[x][y]=0;
        matrfunc[y][x]=0;
        flag= true;
        }
        }
    }
    
    for(i=0; i<n; i++)
    {
        cout<<"\n";
        for(j=0; j<n; j++)
        cout<<" "<<matrfunc[i][j]<<" ";
    }
 
    int start,  finish, xs, ys, xf, yf;
    flag=false;
    do
    {
        cout <<"\n Enter begin path:";
        cin>>start;
        cout <<"\n Enter begin path:";
        cin>>finish;
 
        if (start<1 || start>6 || finish<1 || finish>6)
            {
            cout<<"\n The data is incorrect, please try again.";
            flag = false;
            }
        else
            {
                xs=start-1;
                ys=start-1;
                xf=finish-1;
                yf=finish-1;
                cout<<"\n The data is correct.";
                flag = true;
            }
    }
    while(!flag);
 
    stack * top=new stack;
    top->datax =xs;
    top->datay=ys;
    top->next=NULL;
 
    top = Search(top, xf, yf, matrfunc, visited, n);
 
    if(top!=NULL)
    Show(top);
    else 
    cout<<"\n no path";
 
    
 
    system("pause");
}
 
/*=====================FUNCTION======================*/
 
void push(stack *&top, int valuex, int valuey)
{
    stack* n = new stack;
    n -> datax = valuex;
    n -> datay = valuey;
    n -> next = top;
    top = n;
}
 
stack *Delete(stack *&top)
{
    stack *n = top->next;
    delete top;
    return n;
}
 
stack *Search(stack *&top, int xf, int yf, int **&matrix, int **&visited, int n)
{
    int i=0, j;
    bool flag=false;
    if(top->datax==xf && top->datay==yf)
        return top; 
    else 
    {
        j=top->datax;
        while(i<n || flag)
        {
 
            if(matrix[i][j]==1 && visited[i][j]==0 && Elemente(top,i,j)==false)
            {
                push(top, i, j);
                if(top->datax==xf && top->datay==yf)
                flag=true;
                else
                top=Search(top, xf,yf,matrix, visited, n);
            }
 
            else 
                i++;
        }
 
        if(flag==false)
        {
            visited[top->datax][top->datay]=1;
            top=Delete(top);
        }
        else 
            return top;
    }
 
}
 
void Show(stack *top)
{
    while(top!=NULL)
    {
        cout<<top->datax;
        cout<<" ,"<<top->datay<<"\n";
        top=top->next;
    }
}
 
bool Elemente(stack *top, int a, int b)
{
    bool flag=false;
    while(top!=NULL && !flag)
    {
        if(top->datax==a && top->datay==b)
        {
            flag = true;
        }
        top=top->next;
    }
        if (flag==true)
            return 1;
        else 
            return 0;   
}
при любых корректных данных выбивает следующее:
"Первый этап обработки исключения по адресу 0x011835CD в Laba1.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xFDFDFE09."
подскажи в чем причина

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