Сравнить элементы двух матриц и вывести равные в отдельный массив - C#
Формулировка задачи:
Здравствуйте. Уже искал помощи на форуме, но все равно завис, хоть задача и не выглядит особо сложной.
По условию есть две матрицы одинаковой размерности n*m. Элементы матриц могут быть сгенерированы случайно, заданы пользователем или введены как заданные в программе константы.
После этого поочередно сравниваются элементы матриц и равные записываются в отдельный вектор, его можно реализовать любым образом.
Мне предлагали сделать вот так, но как я понимаю, такой метод сравнивает размеры матриц и в случае равенства выводит в новый массив элементы первой.
И вот так выводил потом это все в listBox:
Как мне в итоге быть? Помогите пожалуйста, все сроки горят, а я висну в таких местах.
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();
} 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++; }
}
}