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