Нужно мнение о коде - C#

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

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

Ответ на задание : "Дан целочисленный массив размера N. Если он является перестановкой, т.е. содержит все числа от 1 до N, то вывести 0; в противном случае вывести номер первого недопустимого элемента." Что можно улучшить, упростить может, кто как считает. Заархивировал один вариант консольного ввода из за того, что он в Far не срабатывает.
Листинг программы
  1. /*Дан целочисленный массив размера N.
  2. Если он является перестановкой, т.е. содержит все числа от 1 до N, то вывести 0;
  3. в противном случае вывести номер первого недопустимого элемента.*/
  4. using System;
  5. class Permutation
  6. {
  7. static void Main()
  8. {
  9. Console.Write("Введите размерность массива: ");
  10. int N = int.Parse(Console.ReadLine());
  11. Console.WriteLine("Проверка массива на перестановку. \n"
  12. + "Введите {0} элементов массива: ", N);
  13. int[] A = new int[N]; // Создадим массив А размера N
  14. for(int X = 0; X < N; X++)
  15. A[X]= int.Parse(Console.ReadLine());
  16. // A = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
  17. for (int T = 1; T <= N; T++) // Цикл создаёт числа перестановки
  18. //для сравнения
  19. {
  20. int coincidence = 0; // Совпадение числа в массиве
  21. //с числом перестановки
  22. int i = 0; // Элемент массива
  23. int Y = 0; // Переменная выхода из циклов
  24. for (; i < N; i++) // Цикл поэлементно опрашивает массив А
  25. {
  26. if (T == A[i]) coincidence++;
  27. if ((coincidence > 1) || ((A[i] > N) || (A[i] == 0)))
  28. {
  29. Console.WriteLine("Недопустимый элемент: " + A[i]);
  30. Y = 1;
  31. break;
  32. }
  33. }
  34. if (Y == 1) break;
  35. if (T == N) Console.WriteLine("Массив является перестановкой");
  36. }
  37. Console.ReadLine();
  38. }
  39. }

Решение задачи: «Нужно мнение о коде»

textual
Листинг программы
  1. bool[] b = new bool[A.Length];
  2.            
  3.             for (int i = 0; i < A.Length; i++)
  4.             {
  5.                 if (A[i] < 1 || A[i] > A.Length || b[A[i]-1]) return A[i].ToString();
  6.                 b[A[i]-1] = true;
  7.             }
  8.             return "correct";

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут