Исправить программу нахождения эйлерова цикла в графе заданном матрицой смежности - C#

Узнай цену своей работы

Формулировка задачи:

помогите исправить программу нахождения эйлерова цикла в графе заданном матрицой смежности вот что сам написал :
namespace Рекурсия
{
    class Program
    {

        static void Main()
        {
           
           Console.WriteLine(Per(0,0,0));
           Console.WriteLine(fun(s[0]));
            Console.ReadLine();
        }
      public int  Per(int i, int j, int x); int fun(int[] s, int[,] mass)
        {
            int[,] mass = new int[3, 3];
            for (a = 0; a < 3; a++)
            {
                for (b = 0; b < 3; b++)
                {
                    mass[a, b] = int.Parse(Console.ReadLine());
                }
            }
            Console.WriteLine();
            for (a = 0; a < 3; a++)
            {
                for (b = 0; b < 3; b++)
                {
                    Console.Write(mass[a, b]);
                } Console.WriteLine();
            }
 
            if (mass[i, j] > 0 & j < 3) { s[x] = i; return F(i = j, j++, x++); fun(s[x]); }
 
            else
                return 1;
    }

    }
}

Решение задачи: «Исправить программу нахождения эйлерова цикла в графе заданном матрицой смежности»

textual
Листинг программы
namespace ConsoleApplication3
{
    public class Program
    {
       public static int n=6, x,z, s=10,i,j,k;
       public static int[,] mass = new int[n, n];
       public static int[] S = new int[s];
        public static void Main()
       {
            
            Console.WriteLine("Задайте матрицу смежности");
            for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { mass[i, j] = int.Parse(Console.ReadLine()); } }
            Console.WriteLine("Задайте точку отправления");
            i = int.Parse(Console.ReadLine());
            z = 0; // счётчик проходов по эллементам матрицы
            x = 0; 
            k = 0; // для изменения вершины при учёте мостов
        one:
           for (j=0;j<n;j++){
               if (mass[i, j] > 0) { S[x] = i; x = x + 1; mass[i, j] = 0; mass[j, i] = 0; i = j; goto one; }
               else { if (mass[i, j] < 1) { if (z > (n * 20)) { goto two; } else { if (j > (n - 1) & mass[i, j] < 1) { z = z + 1; i = k+1; goto one; } else { Console.WriteLine("."); } } } }
        }
            two:
            for (j = 0; j < s; j++)
            {
                Console.WriteLine(S[j]);
            }
          
            Console.Read();
    }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.571 из 5
Похожие ответы