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

Передача массива в подпрограмму - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Клиент для MS SQL Server 2008 http://www.cyberforum.ru/cpp-beginners/thread652275.html
Доброго времени суток! Нам в универе дали задание, написать программу (Клиент - Сервер) для работы с БД MS SQL Server 2008. Программа ведет учет техники на комп. складе. Она должна уметь создавать запись о классе оборудования, изготовителе, модели, характеристиках и цене, и естественно при необходимости могла удалить такую запись. Знания есть только по консольным версиям приложения, а...
C++ Прямоугольный треугольник Определить прямоугольный ли треугольник по 3 его сторонам и ввести ограничения на ввод чисел. Прекрасно понимаю, что надо воспользоваться теоремой Пифагора, но не могу написать программу. Нужна помощь. http://www.cyberforum.ru/cpp-beginners/thread652261.html
C++ Посоветуйте литературу: распознавать простые образы на изображении
Хочу научится распозновать простые образы на озображении, я начал с простых каптч. Если есть каптча, с разбросанными цыфрами одинакового шрифта, и небольшим уклоном, например в наклон цыфр < 10` (градусов) то я ее в большенстве случаев если постараюсь смогу распознать. Я еще недавно на форумах встречал, такаю задачу, онопу парню надо было отделить изображения с картинки, тоесть на...
C++ Сортировка массивов структур методом вставок
сможете ещё помочь с этой задачкой на Си: II. В файле data.txt содержаться сведения о группе студентов в формате: номер группы; фамилия; имя; отчество; год рождения; оценки по пяти предметам. Переписать данные из файла data.txt в файл outdata.txt, отсортировав их: 1. по убыванию средней оценки методом вставки (среднюю оценку вывести в файл outdata.txt для каждого студента)
C++ Отсортировать строки матрицы методом пузырька http://www.cyberforum.ru/cpp-beginners/thread652235.html
Дана матрица размерностью nxn, содержащая целые числа. Отсортировать: каждую строку матрицы по убыванию элементов методом пузырька.. помогите с этой задачей теперь на с++ Для своих вопросов создавайте новые темы!
C++ Отсортировать каждую строку матрицы по убыванию элементов методом пузырька I. Дана матрица размерностью nxn, содержащая целые числа. Отсортировать: 1. каждую строку матрицы по убыванию элементов методом пузырька помогите с этой задачей на Си! Для своих вопросов создавайте новые темы! подробнее

Показать сообщение отдельно
igooha
1 / 1 / 0
Регистрация: 29.11.2011
Сообщений: 24
15.09.2012, 13:51  [ТС]     Передача массива в подпрограмму
N=15
записывается только в r[0] и r[1]

вот весь код. эта прога по нахождению максимального пути в графе

Кликните здесь для просмотра всего текста
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
#include <stdio.h>
#include <conio.h>
 
const int N = 15;
int down = -1, up = 0, numb = 0, rez[N-1], max=0, m=0, t=0, Z;
int A[N-1][N-1], Nnew[N-1], Nnew1[N-1], turn[N-1], tree[N-1][N-1], r[N-1];
//A[][] -граф, Nnew[]- массив признаков, tree[N-1][N-1] - список ребер образующих каркас;
//numb - число ребер в каркасе
 
void pg(int v,int l, int t, int r[])
{
    int j;  
    Nnew1[v] = 1;
    r[t] = v;
    r[4]=4;
    t++;
    l++;
    for(j = 0; j < Z; j++ )
    
        if(tree[v][j]!=0 && !Nnew1[j])
        
            pg(j,l,t, r);
        
        if(max < l) 
        {
            max = l;
            for(m=0; m <= l; m++)
            
                rez[m] = r[m];
        }
            if(l == Z-1) return;
    
};
 
// v- номер вершины из которой выходит ребро, q - номер вершины, начиная с которой следует искать очередное ребро каркаса
void solve(int v, int q)
{
    int j;  
    if (down >= up ) return;
    j=q;
    //просмотр ребер, выходящих из вершины с номеров v
    while(j <= Z-1 && numb < Z-1)
    {
        //Есть ребро, и вершины с номером j еще нет в каркасе. Включаем ребро в каркас
        if( A[v][j]!=0 && !Nnew[j])
        {
            Nnew[j]=1;
            numb++;
            tree[v][j] = 1;
            tree[j][v] = 1;
            //Включаем вершину с номером j в очередь
            turn[up] = j;
            up++;
            j++;
            //продолжаем построение каркаса
            solve(v, j);
            //Исключаем ребро из каркаса
            up--;
            Nnew[j] = 0;
            numb--;
            tree[v][j] = 0;
        }
        j++;
    }
    if(numb == Z-1) 
    {
        for(int i=0; i < Z ;i++)
        {
            Nnew1[i] = 0;
        }
        
        pg(0,-1,0, r);
        return;
    }
    //Все ребра, выходящие из вершины с номером v, просмотрены. Переходим к след. вершине из очереди до тех пор, пока не будет построен каркас.
    if(j == Z)
    {
        down++;
        solve(turn[down], 0);
        down--;
    }
};
 
void main()
{
    FILE *f;
    f = fopen( "input1.txt", "r" );
    if( (f == NULL )) printf("Error");
    else
    {
        fscanf_s( f, "%d", &Z );
        for(int i=0; i<Z; i++) 
        {
            for(int j=0; j<Z; j++) 
            {
                fscanf_s( f, "%d", &A[i][j] );
            }
        }
    };
 
    for(int i=0; i<Z ; i++)
    {
        Nnew[i]=0;
    }
 
    Nnew[0] = 1;
 
    for(int i=0; i < Z; i++)
        for(int j=0; j<Z; j++)
        {
            tree[i][j] = 0;
        }
    
    solve(0,1);
    for(int i=0; i<Z; i++)
        if(rez[i]!=0)
        {
            printf("%d" , rez[i]);
            printf(" ");
        }
    _getch();
}


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