Поиск повторяющихся элементов - C#

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

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

есть ступенчатый массив, нужно занести из него в одномерный массив только те элементы, что встречаются по всех строках initArray метод
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. namespace SteppedArray
  4. {
  5. class Programm
  6. {
  7. public static void Main(string []args)
  8. {
  9. int[][] baseArray = generateArray(min: 3, max: 10);
  10. printArray(baseArray);
  11. sortArray(baseArray);
  12. Console.WriteLine("после сортировки");
  13. printArray(baseArray);
  14. Console.Write("поиск элемента x:");
  15. var x = int.Parse(Console.ReadLine());
  16. Console.Write("в строке:");
  17. var line = int.Parse(Console.ReadLine());
  18. Console.WriteLine("индекс элемента {0}",binarySearch(baseArray, line, x));
  19. int[] array = new int[baseArray.Length];
  20. for (int element = 0; element < baseArray.Length; element++)
  21. Console.Write(" {0}",array[element] = baseArray[element][0]);
  22. int[] repeatArray;
  23. initArray(baseArray, out repeatArray);
  24. }
  25. static int[][] generateArray(int min, int max)
  26. {
  27. Random randomVal = new Random();
  28. // случайное количество строк
  29. int linesAmnt = randomVal.Next(min, max);
  30. int[][] array = new int[linesAmnt][];
  31. for (int lineNum = 0; lineNum < linesAmnt; lineNum++)
  32. {
  33. // элементов
  34. int elementsAmnt = randomVal.Next(min, max);
  35. array[lineNum] = new int[elementsAmnt];
  36. for (int elementNum = 0; elementNum < elementsAmnt; elementNum++)
  37. array[lineNum][elementNum] = randomVal.Next(10, 100);
  38. }
  39. return array;
  40. }
  41. static void printArray(int[][] inputArray)
  42. {
  43. for (int lineNum=0; lineNum < inputArray.Length;lineNum++)
  44. {
  45. for (int elementNum=0;elementNum<inputArray[lineNum].Length;elementNum++)
  46. Console.Write(" " + inputArray[lineNum][elementNum]);
  47. Console.WriteLine();
  48. }
  49. }
  50. static void sortArray(int[][] inputArray)
  51. {
  52. int buffer;
  53. for (int lineNum = 0; lineNum < inputArray.Length; lineNum++)
  54. for (int elementNum = 0; elementNum < inputArray[lineNum].Length; elementNum++)
  55. for (int elementSort = elementNum + 1; elementSort < inputArray[ lineNum].Length; elementSort++)
  56. if (inputArray[lineNum][elementNum]> inputArray[lineNum][elementSort])
  57. {// заменить на другой поиск
  58. buffer = inputArray[lineNum][elementNum];
  59. inputArray[lineNum][elementNum] = inputArray[lineNum][elementSort];
  60. inputArray[lineNum][elementSort] = buffer;
  61. }
  62. }
  63. static int binarySearch(int[][] inputArray, int line, int x)
  64. {
  65. //if ((x < inputArray[line][0]) || (x > inputArray[line].Length))
  66. // return -1;
  67. var left = 0;
  68. var right = inputArray[line].Length;
  69. while (((right - left) / 2) > 0)
  70. {
  71. var middle = left + (right - left) / 2;
  72. if (inputArray[line][middle] < x)
  73. left = middle + 1;
  74. else
  75. right = middle;
  76. }
  77. return inputArray[line][left] >= x ? left : right;
  78. }
  79. static void initArray(int [][]inputArray, out int []repeatArray)
  80. {
  81. var list = new List<int>();
  82. bool logic = true;
  83. int check;
  84. for (int lineNum = 0; lineNum < inputArray.Length; lineNum++)
  85. for (int elementNum = 0; elementNum < inputArray[lineNum].Length; elementNum++)
  86. {
  87. check = inputArray[lineNum][elementNum];
  88. //?
  89. }
  90. repeatArray = list.ToArray();
  91. foreach (int elements in repeatArray)
  92. Console.Write(" " + elements);
  93. }
  94. }
  95. }

Решение задачи: «Поиск повторяющихся элементов»

textual
Листинг программы
  1.  static void initArray(int[][] inputArray, out int[] repeatArray)
  2.         {
  3.             var list = new List<int>(inputArray[0]);
  4.             for (int lineNum = 1; lineNum < inputArray.Length; lineNum++)
  5.             {
  6.                 list = list.Intersect(inputArray[lineNum]).ToList();
  7.             }
  8.             repeatArray = list.ToArray();
  9.             foreach (int elements in repeatArray)
  10.                 Console.Write(" " + elements);
  11.         }

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


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

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

13   голосов , оценка 3.769 из 5

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

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

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