![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 24.11.2010
Сообщений: 6
|
![]()
Доброго времени суток!
Помогите пожалуйста! Пытаюсь написать программу, которая исходя из матрицы смежности находила матрицу расстояний. Нашла алгоритм нахождения матрицы расстояний с помощью алгоритма Флойда. Но программа работает только для ограниченного числа неорграфов. Подскажите, где ошибка? Как исправить программу? #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<mem.h> #include<iostream.h> //функция нахождения минимума int min(int a,int b) { if(a<b) return a; else return b; } void main(void) { clrscr(); int n,i,j,k,m; cout<<"Razmer massiva:"<<endl; cin>>n; //создаю динамический массив размера n*n int **mat=new int*[n]; for(k=0;k<n;k++) mat[k]=new int[n]; cout<<"Vvedite matricy smegnosti:"<<endl; for(i=0;i<n;i++) for(j=0;j<n;j++) cin>>mat[i][j]; cout<<endl; //сам алгоритм поиска матрицы расстояний for(m=0;m<n;m++) {for(i=0;i<n;i++) {for(j=0;j<n;j++) {if(i!=j) //меняем только те числа, которые находятся не на главной диагонали if(mat[i][j]!=0) //нули, стоящие не на главной диагонали я принимала за бесконечность, согласно алгоритму Флойда mat[i][j]=min(mat[i][j],mat[i][m]+mat[m][j]); else mat[i][j]=mat[i][m]+mat[m][i]; } } } //вывод матрицы расстояний for(i=0;i<n;i++) {for(j=0;j<n;j++) cout<<mat[i][j]<<" "; cout<<endl; } delete[] mat; getch(); } |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
нахождение расстояний и углов (начертательная геометрия) | alex(21) | Помощь студентам | 9 | 28.02.2016 16:39 |
построение графа !! | drylozav | Помощь студентам | 0 | 06.10.2010 01:23 |
Непонятки с DirectX (матрица поворота, камера, матрица проекции) | ROD | Общие вопросы C/C++ | 2 | 17.09.2010 17:00 |
Найти такую точку, сумма расстояний от которой до остальных точек минимальна | SIEGER | Помощь студентам | 3 | 18.11.2008 17:53 |
Нужна программа расчета расстояний | Евгений Мариуполь | Фриланс | 2 | 21.01.2007 21:23 |