Определить количество одинаковых элементов в каждой строке матрицы размерности 8 на 10 - C#

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

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

Задание:

Определить количество одинаковых элементов в каждой строке матрицы размерности 8 на 10.

Вопросы таковы: 1.

К примеру строка 1 1 2 тогда одинаковых элементов два или один все же?)) не пойму я.

2.

Пришла идея взять строку, удалить одинаковые элементы методом distinct(), и тогда как разность посчитать количество одинаковых элементов. Но пришлось заводить отдельно массив одномерный и туда пихать элементы. Нельзя ли достать как то строку из матрицы проще?Чтобы вызывать методы соответствующие!? Спасибо!
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace Matrix
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. Random rnd = new Random(); //конструктор класса Random, для случайного заполнения матрицы
  13. const int m=8; // количество строк матрицы
  14. const int n=10; // количество столбцов матрицы
  15. int check; // check- переменная для работы с пользователем
  16. // Приглашение пользователя к работе
  17. int[,] A = new int[m, n]; // Создание матрицы размера 8*10
  18. int[] b = new int[n]; // создание вспомогательного массива
  19. Console.WriteLine("Введите 1 чтобы случайно заполнить матрицу и 2 для ввода матрицы поэлементно по строкам");
  20. check = int.Parse(Console.ReadLine()); // читаем команду пользователя
  21. if (check == 1) // если пользователь выбрал 1
  22. {
  23. for (int i = 0; i < m; i++)
  24. for (int j = 0; j < n; j++)
  25. A[i, j] = rnd.Next(1, 8); // Случайно заполняем матрицу в диапазоне 1-8
  26. }
  27. else
  28. if (check == 2) // если пользователь выбрал 2
  29. {
  30. Console.WriteLine("Введите матрицу: ");
  31. for (int i = 0; i < m; i++)
  32. for (int j = 0; j < n; j++)
  33. {
  34. Console.Write("A[" + i + "," + j + "]: "); //Читаем матрицу с клавиатуры
  35. A[i, j] = int.Parse(Console.ReadLine());
  36. }
  37. }
  38. Console.WriteLine("Заполненная матрица имеет вид: ");
  39. // Выводим матрицу на экран
  40. for (int i = 0; i < m; i++)
  41. {
  42. for (int j = 0; j < n; j++)
  43. Console.Write(A[i, j] + " ");
  44. Console.WriteLine();
  45. }
  46.  
  47. for (int i = 0; i < m; i++)
  48. {
  49. for (int j = 0; j < n; j++) // копиркем строку матрицы в массив
  50. b[j] = A[i, j];
  51. Console.WriteLine("количество одинаковых элементов в "+ (i+1)+" -ой строке = "+(n-b.Distinct().Count())); // удаляем одинаковые элементы и выводим разницу количества столбцов и количества различных элементов
  52. }
  53.  
  54. //Ожидание ввода любого символа
  55. Console.ReadKey();
  56. }
  57. }
  58. }

Решение задачи: «Определить количество одинаковых элементов в каждой строке матрицы размерности 8 на 10»

textual
Листинг программы
  1. using System;
  2. using System.Linq;
  3. using System.Collections.Generic;
  4.  
  5. class Program
  6. {
  7.     public static void Main()
  8.     {
  9.         Random rnd = new Random();
  10.         int[,] matrix = new int[8, 10];
  11.         for (int i = 0; i < matrix.GetLength(0); i++)
  12.         {
  13.             for (int j = 0; j < matrix.GetLength(1); j++)
  14.             {
  15.                 matrix[i, j] = rnd.Next(10);
  16.                 Console.Write(matrix[i, j]);
  17.                 Console.Write(" ");
  18.             }
  19.             Console.WriteLine();
  20.         }
  21.         Console.WriteLine(String.Join(", ", Enumerable.Range(0, matrix.GetLength(0))
  22.             .Select(i => new HashSet<int>(Enumerable.Range(0, matrix.GetLength(1))
  23.                 .Select(j => matrix[i, j])).Count)));
  24.     }
  25. }

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


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

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

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

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

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

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