Нужно мнение о коде - 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";

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


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

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

6   голосов , оценка 4.333 из 5