Если невозможно упорядочить векторы, вывести сообщение "Вектора несравнимы" - C#

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

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

даны булевы вектора а и b длины n. Если возможно упорядочить их, или вывести сообщение "Вектора несравнимы

Решение задачи: «Если невозможно упорядочить векторы, вывести сообщение "Вектора несравнимы"»

textual
Листинг программы
public static class report
    {
        [STAThread]
        public static void Main()
        {
            BitArray a = new BitArray(new bool[] {true, true, true, false});
            BitArray b = new BitArray(new bool[] {true, true, true, true});
            Console.WriteLine(a.CompareTo(b));
            Console.WriteLine(b.CompareTo(a));
            Console.ReadKey();
        }
 
        /// <summary>Сравнивает два булевых массива</summary>
        /// <returns>
        /// 1, если массив a больше b
        /// 0, если массив а равен b
        /// -1, если массив а меньше b
        /// null, если массивы не сравнимы
        /// </returns>
        public static int? CompareTo(this BitArray a, BitArray b)
        {
            if (a.Length != b.Length)
                return null;
 
            bool aGreat = false;
            bool bGreat = false;
            for (int i = 0; i < a.Length; i++)
            {
                if (a[i] && !b[i])
                    aGreat = true;
                if (b[i] && !a[i])
                    bGreat = true;
            }
            if (aGreat && !bGreat)
                return 1;
            if (bGreat && !aGreat)
                return -1;
            if (!aGreat && !bGreat)
                return 0;
            return null;
        }
    }

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


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

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

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