Реализовать алгоритм Флойда-Уоршалла - C#
Формулировка задачи:
Здравствуйте. Я понимаю, что уже неоднократно разбирался алгоритм Флойда-Уоршалла, но у меня всё равно не получается довести до ума. Хочу вводить данные с консоли. Хорошо. Дальше программа выдает ошибку (указывает строку 28, где находится условие if). Кто объяснит, в чем проблема?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Алгоритм
{
class Program
{
static void Main(string[] args)
{
int n, i, j, k;
Console.WriteLine("Введите размерность: ");
n = int.Parse(Console.ReadLine());
int[,] matrix = new int[n,n];
Console.WriteLine("Задайте числа");
for (i = 0; i < n; i++)
for (j = 0; j < n; j++) {
Console.Write("matrix[" + i + "][" + j + "]= ");
matrix[i,j] = int.Parse(Console.ReadLine());
}
for (k = 0; k < matrix.Length; ++k)
for (i = 0; i < matrix.Length; ++i)
for (j = 0; j < matrix.Length; ++j)
if (matrix[i,k] + matrix[k,j] < matrix[i,j]) {
matrix[i,j] = matrix[i,k] + matrix[k,j];
Console.WriteLine("Самый короткий путь =" + matrix[i,j]);
}
Console.ReadKey();
}
}
}Решение задачи: «Реализовать алгоритм Флойда-Уоршалла»
textual
Листинг программы
for (int k = 0; k < n; ++k) for (int i = 0; i < n; ++i) for (int j = 0; j < n; ++j) ...