Реализовать алгоритм Флойда-Уоршалла - 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) ...
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д