Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2011, 18:31   #1
nikalerka
 
Регистрация: 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();
}
nikalerka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нахождение расстояний и углов (начертательная геометрия) 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