Проверка последовательности чисел с интервалом 1 - C#
Формулировка задачи:
У меня есть два похожих алгоритма проверки массива на последовательность в нём чисел с убыванием с интервалом в единицу. Подскажите пожалуйста они идентичны или есть ошибка? Спасибо. Вот весь код:
static void Test1() { Random random = new Random(); int[] slot = new int[5]; int countNumber1 = 0; int countNumber2 = 0; int compareNumber = 0; bool ladder = false; do { ladder = false; while (!ladder) { Console.Clear(); for (int a = 0; a < slot.Length; ++a) { slot[a] = random.Next(1, 11); Console.Write("{0} ", slot[a]); } for (int a = 0; a < slot.Length; ++a) { for (int b = a + 1; b < slot.Length; ++b) { if (slot[a] < slot[b]) { compareNumber = slot[a]; slot[a] = slot[b]; slot[b] = compareNumber; } } } Console.WriteLine(); Console.WriteLine(); for (int a = 0; a < slot.Length; ++a) { Console.Write("{0} ", slot[a]); } Console.WriteLine(); Console.WriteLine(); // Вариант №1 for (int a = 0; a < slot.Length; ++a) { for (int b = a + 1; b < slot.Length; ++b) { if (slot[a] > slot[b] && slot[a] - 1 == slot[b]) { countNumber1++; break; } else break; } if (countNumber1 == 4) break; } /* // Вариант №2 for (int a = 0; a < slot.Length - 1; ++a) { if (slot[a] > slot[a + 1] && slot[a] - 1 == slot[a + 1]) { countNumber1++; } if (countNumber1 == 4) break; } */ if (countNumber1 == 4) { ladder = true; Console.WriteLine("Лесенка!"); countNumber1 = 0; continue; } else countNumber1 = 0; } } while (Console.ReadKey().Key == ConsoleKey.Enter); }
Только не запускайте оба варианта одновременно!
Решение задачи: «Проверка последовательности чисел с интервалом 1»
textual
Листинг программы
using System; class Program { public static void Main() { int[] arr = new int[] { 5, 4, 3, 2, 1 }; int i; for (i = 1; i < arr.Length; i++) { if (arr[i - 1] - 1 != arr[i]) break; } Console.WriteLine(i == arr.Length ? "Все элементы удовлетворяют условию" : "Не все"); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д