Нужно мнение о коде - C#
Формулировка задачи:
Ответ на задание : "Дан целочисленный массив размера N.
Если он является перестановкой, т.е. содержит все числа от 1 до N, то вывести 0;
в противном случае вывести номер первого недопустимого элемента." Что можно улучшить, упростить может, кто как считает.
Заархивировал один вариант консольного ввода из за того, что он в Far не срабатывает.
/*Дан целочисленный массив размера N. Если он является перестановкой, т.е. содержит все числа от 1 до N, то вывести 0; в противном случае вывести номер первого недопустимого элемента.*/ using System; class Permutation { static void Main() { Console.Write("Введите размерность массива: "); int N = int.Parse(Console.ReadLine()); Console.WriteLine("Проверка массива на перестановку. \n" + "Введите {0} элементов массива: ", N); int[] A = new int[N]; // Создадим массив А размера N for(int X = 0; X < N; X++) A[X]= int.Parse(Console.ReadLine()); // A = Console.ReadLine().Split(' ').Select(int.Parse).ToArray(); for (int T = 1; T <= N; T++) // Цикл создаёт числа перестановки //для сравнения { int coincidence = 0; // Совпадение числа в массиве //с числом перестановки int i = 0; // Элемент массива int Y = 0; // Переменная выхода из циклов for (; i < N; i++) // Цикл поэлементно опрашивает массив А { if (T == A[i]) coincidence++; if ((coincidence > 1) || ((A[i] > N) || (A[i] == 0))) { Console.WriteLine("Недопустимый элемент: " + A[i]); Y = 1; break; } } if (Y == 1) break; if (T == N) Console.WriteLine("Массив является перестановкой"); } Console.ReadLine(); } }
Решение задачи: «Нужно мнение о коде»
textual
Листинг программы
bool[] b = new bool[A.Length]; for (int i = 0; i < A.Length; i++) { if (A[i] < 1 || A[i] > A.Length || b[A[i]-1]) return A[i].ToString(); b[A[i]-1] = true; } return "correct";
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д