Форум программистов, компьютерный форум, киберфорум
Наши страницы

C для начинающих

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

Прохождение по графу - C (СИ)

29.12.2012, 23:48. Просмотров 501. Ответов 2
Метки нет (Все метки)

У меня есть граф. На нем у меня есть начальная точка и конечная. Задача пройти от начала до конца и набрать нужную сумму из элементов графа. Я начинаю двигаться от начала и дальше иду смотря на матрицу смежности. И у меня выбивает ошибка Access violation. Помогите найти ошибку
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
#include<stdio.h>
#include<locale.h>
 
#define MAX 24
 
int k,z,mas[MAX],m[MAX][MAX],ma[MAX];
 
void vvid(){
    FILE* f;
    int i,j;
    f=fopen("D:\\BBBBB\\teoriya\\rozraha\\vvid.txt","r");
    i=0;
    while(!feof(f))
        fscanf(f,"%d",&mas[i++]);
    f=fopen("D:\\BBBBB\\teoriya\\rozraha\\matrucya.txt","r");
    i=j=0;
    while(!feof(f)){
        fscanf(f,"%d",&m[i][j++]);
        if(j==MAX){
            i++;
            j=0;
        }
    }
    fclose(f);
    setlocale(LC_ALL,"Russian");
}
 
void vuvid(){
    int i;
    printf("Шлях до %d->",k);
    for(i=0;i<z;i++)
        printf("%d->",ma[i]);
    printf("\n");
}
 
void graf(int i,int s){
    int j=0,c=0;
    s+=mas[i];
    ma[z++]=mas[i];
    while(c<MAX){
        if(m[c][i]==1)
            m[c][i]=2;
        c++;
    }
    if(s==k)
        if(i==5)
        {
            vuvid();
            z--;
            return;
        }
        else
        {
            z--;
            return;
        }
    if(s>k||i==5)
    {
        z--;
        return;
    }
    c=0;
    while(j<MAX){
        if(m[i][j]==1){
            while(c<MAX){
                if(m[c][j]==1)
                    m[c][j]=2;
                c++;
            }
            m[i][j]=2;
            c=0;
            graf(j,s);
            while(c<MAX){
                if(m[c][j]==2)
                    m[c][j]=1;
                c++;
            }
        }
        j++;
    }
    c=0;
    while(c<MAX){
        if(m[c][i]==2)
            m[c][i]=1;
        c++;
    }
}
 
void main(){
    vvid();
    k=250;
    graf(0,0);
    k=350;
    graf(0,0);
    fflush(stdin);
    getchar();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.12.2012, 23:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Прохождение по графу (C (СИ)):

Добавить в таблицу графу с общими суммами по каждому виду товара - C (СИ)
Доброго времени суток. Прошу вашей помощи. Задача такова: В текстовом файле в табличном виде хранится информация о количестве и ценах...

Есть мин-ое остовое дерево к заданному графу. Нужно добавить к этому графу новое ребро, и предложить алгоритм, который перестроит мин-е остовое дерево - Алгоритмы
Полный текст задачи: &quot;Предположим, что у нас имеется минимальное остовое дерево Т заданного графа G (c n вершинами и m ребрами) и новое...

Поиск по графу - Prolog
День добрый. С темой &quot;Поиск в пространстве состояний&quot; ознакомилась, и возник такой вопрос: как изменить, скажем, алгоритм поиска в ширину...

задача по графу - C++
Здравствуйте! Помогите разобраться и решить данную задачу. &quot;Представление ориентированных графов в виде матриц инцидентности&quot; ...

Добавление ребра к графу - Дискретная математика
Покажите, что добавление ребра к графу (при условии, что граф остаётся плоским) либо увеличивает число граней на 1, либо сокращается число...

По графу G постройте граф T (G) - Turbo Pascal
Вершины и ребра графа назовем его элементами. По графу G постройте граф T(G), у которого в качестве вершин взяты элементы G, а две вершины...

2
alkagolik
Заблокирован
31.12.2012, 04:38 #2
Цитата Сообщение от slavikg Посмотреть сообщение
Помогите найти ошибку
с удовольствием. Но... см мой никнэйм.. протрезвею дня через два - не меньше.
по вопросу формулировки ТЗ, скорее всего тебе те отвечают именно поэтому. Итак, поехали:
Цитата Сообщение от slavikg Посмотреть сообщение
У меня есть граф
понятно

Цитата Сообщение от slavikg Посмотреть сообщение
На нем у меня есть начальная точка и конечная
понятно

Цитата Сообщение от slavikg Посмотреть сообщение
Задача пройти от начала до конца и набрать нужную сумму из элементов графа
непонятно

Цитата Сообщение от slavikg Посмотреть сообщение
Я начинаю двигаться от начала и дальше иду смотря на матрицу смежности. И у меня выбивает ошибка Access violation
и как следствие из прежыжущего предиката - непонятно.
Сформируй ТЗ и тебе помогут, я бы и сам с удовольствием (учитывая твое желание), но ... прости... пъян до невозможности.
0
slavikg
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 71
03.01.2013, 00:32  [ТС] #3
Тема закрита давно забил написать
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.01.2013, 00:32
Привет! Вот еще темы с ответами:

Автоматическое сохранение даты в графу дата - PHP БД
Добрый день, Форумчане Есть таблица в БД, куда садиться некоторая информация, требуется ввести учет даты, когда вносилась эта...

Вычислить вероятность состояния системы по заданному графу - Теория вероятностей
Всем привет. Я закончил ВУЗ более 10 лет назад и уже совершенно забыл как это делается, а сделать надо, т.к. пообещал помочь :) Погуглил...

Применим ли к данному графу отношений алгоритм топологической сортировки? - Дискретная математика
Применим ли к данному графу отношений алгоритм топологической сортировки? (см. вложения) Если да, то почему? Если нет, то почему? Как...

нахождение энного кара и кдра,поиск по неориентированному графу - Prolog
Пoмoгитe, пoжaлуйcтa, зa бoльшoe чeлoвeчecкoe cпacибo и.. сможем договориться о размерах спасиба 1) вoзврaщaeт энный кaр или кдр из...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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