Сравнить элементы двух матриц и вывести равные в отдельный массив - C#

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

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

Здравствуйте. Уже искал помощи на форуме, но все равно завис, хоть задача и не выглядит особо сложной. По условию есть две матрицы одинаковой размерности n*m. Элементы матриц могут быть сгенерированы случайно, заданы пользователем или введены как заданные в программе константы. После этого поочередно сравниваются элементы матриц и равные записываются в отдельный вектор, его можно реализовать любым образом. Мне предлагали сделать вот так, но как я понимаю, такой метод сравнивает размеры матриц и в случае равенства выводит в новый массив элементы первой.
static int[] GetVector(int[,] array1, int[,] array2) // Метод для сравнения матриц
        {
            if (array1.GetLength(0) != array2.GetLength(0) || array1.GetLength(1) != array2.GetLength(1))
                return null;
            List<int> vector = new List<int>();
            for (int i = 0; i < array1.GetLength(0); i++)
                for (int j = 0; j < array1.GetLength(1); j++)
                {
                    if (array1[i, j] == array2[i, j])
                        vector.Add(array1[i, j]);
                }
            return vector.ToArray();
        }
И вот так выводил потом это все в listBox:
 private void сравнитьМатрицыToolStripMenuItem_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            int n = dataGridView1.ColumnCount;
            int m = dataGridView1.RowCount;
            int[,] a = new int[n, m];
            for (int i = 0; i < n; i++)
                for (int j = 0; j < m; j++)
                    a[i, j] = Convert.ToInt32(dataGridView1[i, j].Value);
            //
            int n1 = dataGridView2.ColumnCount;
            int m1 = dataGridView2.RowCount;
            int[,] b = new int[n1, m1];
            for (int i = 0; i < n1; i++)
                for (int j = 0; j < m1; j++)
                    b[i, j] = Convert.ToInt32(dataGridView1[i, j].Value);
            listBox1.DataSource = GetVector(a, b);
Как мне в итоге быть? Помогите пожалуйста, все сроки горят, а я висну в таких местах.

Решение задачи: «Сравнить элементы двух матриц и вывести равные в отдельный массив»

textual
Листинг программы
int k=0;
for(int i=0; i<m; i++)
{
   for(int j=0; j<n; j++)
   {
       if(mas[i][j]==mas2[i][j])
       { mas3[k]=mas[i][j]; k++; }
    }
}

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


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

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

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