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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
zubi
0 / 0 / 0
Регистрация: 19.08.2014
Сообщений: 8
#1

Поиск в ширину - Неправильно выполняется программа - C++

21.08.2014, 20:58. Просмотров 365. Ответов 6
Метки нет (Все метки)

ПОМОГИТЕ! ПОЧЕМУ НЕПРАВИЛЬНО ВЫПОЛНЯЕТСЯ ПРОГРАММА?

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
#include<iostream>
#include<stdio.h>
#include<queue>
 
using namespace std;
 
 
int main(){
    freopen("open","r",stdin);
        int n,s;
    int g[111][111];
     cin>>n>>s;
    for(int i = 0;i<n;i++)
        for(int j=0;j<n;j++)
            cin>>g[i][j];
    queue<int> q;
q.push (s);
vector<bool> used (n);
vector<int> d (n), p (n);
used[s] = true;
p[s] = -1;
while (!q.empty()) {
    int v = q.front();
    q.pop();
    for (size_t i=0; i<n; ++i) {
        int to = g[v][i];
        if (!used[to]) {
            used[to] = true;
            q.push (to);
            d[to] = d[v] + 1;
            p[to] = v;
        }
    }
}
    for(int i=0;i<n;i++)
        cout<<d[i]<<" ";
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.08.2014, 20:58     Поиск в ширину - Неправильно выполняется программа
Посмотрите здесь:

Программа работает неправильно. Цикл не выполняется. Подскажите ошибку - C++
Здравствуйте. Подскажите, пожалуйста, почему неправильно выполняется программа( не выполняется цикл). Заранее спасибо. #include...

Неправильно выполняется цикл do while - C++
Есть код: #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main(){ setlocale(LC_ALL, &quot;Russian&quot;); float...

Неправильно выполняется формула в цикле - C++
#include &quot;stdafx.h&quot; long temp, timer; double T1, T2; double dT1, dT2; float dtime=0.01, a1, a2; int timer0; int...

Поиск в ширину - C++
Здравствуйте, я ознакомился с поиском в ширину в общем виде, знаю принцип работы, для чего используеться, но задаюсь вопросом об...

Поиск в ширину - C++
Можете, пожалуйста, объяснить как понять вот этот код: vector &lt; vector&lt;int&gt; &gt; g; // граф непонятно, как описан вектор. код взят...

поиск в ширину - C++
Помогите объяснить это по русски каждую строчку что тут написнао . #include &lt;cstdio&gt; #include &lt;vector&gt; #include &lt;stack.h&gt; #include...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Бендерродригез
Сгибальщик
42 / 42 / 3
Регистрация: 18.05.2013
Сообщений: 220
Завершенные тесты: 1
21.08.2014, 21:09     Поиск в ширину - Неправильно выполняется программа #2
Экстрасенсы сейчас на битве.
Что она должна делать и что делает?
И неплохо бы ещё тэги [СPP][/СPP] использовать.
Тамика
Котовчанин
870 / 450 / 143
Регистрация: 16.02.2010
Сообщений: 2,954
Записей в блоге: 27
21.08.2014, 21:40     Поиск в ширину - Неправильно выполняется программа #3
А пока экстрасенсы на битве, можете спросить у Великого Компилятора. Если он молчит - изъясните сами, пожалуйста, почему она неправильно работает и как правильно? А то Вы путаете магов и программистов...
zubi
0 / 0 / 0
Регистрация: 19.08.2014
Сообщений: 8
21.08.2014, 22:54  [ТС]     Поиск в ширину - Неправильно выполняется программа #4
это поиск в ширину . но она неправильно выдает ответ . то есть дистанцию от верщины S до доругих
salam
162 / 143 / 12
Регистрация: 10.07.2012
Сообщений: 725
22.08.2014, 07:18     Поиск в ширину - Неправильно выполняется программа #5
массивы надо инициализировать до запуска while-а.
Fallenworld
76 / 76 / 9
Регистрация: 14.04.2014
Сообщений: 408
22.08.2014, 09:10     Поиск в ширину - Неправильно выполняется программа #6
Однобуквенные переменные...
Хорошая программа не должна требовать комментариев, чтобы понять, что в ней происходит.
Но к этой требуются.
Из того, что возможно является причиной undefined behaviour
C++
1
for (size_t i=0; i<n; ++i)
сравнение int и site_t
C++
1
int to = g[v][i];
тоже самое, size_t приводится к инт
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.08.2014, 11:21     Поиск в ширину - Неправильно выполняется программа
Еще ссылки по теме:

поиск в ширину(Рекурсивный) - C++
Программа запускается но выдает ошибку(Задача такая: Создать программу для решения задачи построения слова из некоторого множества букв...

графы. поиск в ширину - C++
у меня такая задача: Определить, является ли неориентированный граф двудольным графом через алгоритм поиска в ширину. мне хотя бы...

Длина пути (поиск в ширину) - C++
В неориентированном графе требуется найти длину минимального пути между двумя вершинами. Гарантируется, что путь существует. Входные...

Помогите написать программу поиск в ширину - C++
Здравствуйте! Необходимо написать такую программу: Входные данные - количество вершин графа и его ребра. Выход - вектор, содержащий...


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

Или воспользуйтесь поиском по форуму:
DieMore
3 / 3 / 2
Регистрация: 21.08.2014
Сообщений: 17
22.08.2014, 11:21     Поиск в ширину - Неправильно выполняется программа #7
Подправил, вроде работает.
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
#include<iostream>
#include<stdio.h>
#include<queue>
 
using namespace std;
 
const int inf = (int)1e9;
 
 
int main(){
    //freopen("open","r",stdin);
        int n,s;
    int g[111][111];
    cin>>n>>s;
    for(int i = 0;i<n;i++)
        for(int j=0;j<n;j++)
            cin>>g[i][j];
    queue<int> q;
    q.push (s);
    vector<bool> used (n);
    vector<int> d (n,inf), p (n);
    used[s] = true;
    p[s] = -1;
    d[s] = 0;
while (!q.empty()) {
    int v = q.front();
    q.pop();
    for (size_t i=0; i<n; ++i) {
 
        if (g[v][i] && d[i] > d[v] + 1) {
            q.push (i);
            d[i] = d[v] + 1;
            p[i] = v;
        }
    }
}
    for(int i=0;i<n;i++)
        cout<<d[i]<<" ";
    return 0;
}
Вы ,видимо, решаете какую-то задачу? Или как?
Yandex
Объявления
22.08.2014, 11:21     Поиск в ширину - Неправильно выполняется программа
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru