Если невозможно упорядочить векторы, вывести сообщение "Вектора несравнимы" - 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;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д