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

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

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

Задание:

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

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

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

2.

Пришла идея взять строку, удалить одинаковые элементы методом distinct(), и тогда как разность посчитать количество одинаковых элементов. Но пришлось заводить отдельно массив одномерный и туда пихать элементы. Нельзя ли достать как то строку из матрицы проще?Чтобы вызывать методы соответствующие!? Спасибо!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Matrix
{
    class Program
    {
        static void Main(string[] args)
        {
 
            Random rnd = new Random(); //конструктор  класса Random, для случайного заполнения матрицы
            const int m=8; // количество строк матрицы
            const int n=10; // количество столбцов матрицы
            int check; // check- переменная для работы с пользователем
 
            // Приглашение пользователя к работе
            
            int[,] A = new int[m, n]; // Создание матрицы размера 8*10
            int[] b = new int[n]; // создание вспомогательного массива
 
            Console.WriteLine("Введите 1 чтобы случайно заполнить матрицу и 2 для ввода матрицы поэлементно по строкам");
            check = int.Parse(Console.ReadLine()); // читаем команду пользователя
 
            if (check == 1) // если пользователь выбрал 1
            {
                for (int i = 0; i < m; i++)
                    for (int j = 0; j < n; j++)
                        A[i, j] = rnd.Next(1, 8); // Случайно заполняем матрицу в диапазоне 1-8
            }
            else
                if (check == 2) // если пользователь выбрал 2
                {
                    Console.WriteLine("Введите матрицу: ");
                    for (int i = 0; i < m; i++)
                        for (int j = 0; j < n; j++)
                        {
                            Console.Write("A[" + i + "," + j + "]: "); //Читаем матрицу с клавиатуры
                            A[i, j] = int.Parse(Console.ReadLine());
 
                        }
                }
 
            Console.WriteLine("Заполненная матрица имеет вид: ");
            // Выводим матрицу на экран 
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                    Console.Write(A[i, j] + " ");
                Console.WriteLine();
            }

            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++) // копиркем строку матрицы в массив
                    b[j] = A[i, j];
                Console.WriteLine("количество одинаковых элементов в "+ (i+1)+" -ой строке = "+(n-b.Distinct().Count())); // удаляем одинаковые элементы и выводим разницу количества столбцов и количества различных элементов
            }

            //Ожидание ввода любого символа
            Console.ReadKey();
 
        }
    }
}

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

textual
Листинг программы
using System;
using System.Linq;
using System.Collections.Generic;
 
class Program
{
    public static void Main()
    {
        Random rnd = new Random();
        int[,] matrix = new int[8, 10];
        for (int i = 0; i < matrix.GetLength(0); i++)
        {
            for (int j = 0; j < matrix.GetLength(1); j++)
            {
                matrix[i, j] = rnd.Next(10);
                Console.Write(matrix[i, j]);
                Console.Write(" ");
            }
            Console.WriteLine();
        }
        Console.WriteLine(String.Join(", ", Enumerable.Range(0, matrix.GetLength(0))
            .Select(i => new HashSet<int>(Enumerable.Range(0, matrix.GetLength(1))
                .Select(j => matrix[i, j])).Count)));
    }
}

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


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

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

6   голосов , оценка 4 из 5
Похожие ответы