Программа сравнения матриц - C#
Формулировка задачи:
доброго времени суток товарищи, столкнулся с такой проблемой не могу доделать лабу по программированию сравнение массивов.
текст задания
для заданной матрицы размером 8 x 8 найти такие к, при которых k-я строка
матрицы совпадает с k-м столбцом. Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент.
Сумму элементов я уже нашел, а вот сравнить матрицы не могу.
код программы :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace лаба_5
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
textBox3.Text = " ";
int[,] mas = new int[10, 10];
int m = 2,
n = 2;
Random a = new Random();
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
if (a.Next(100) > 1) mas[i, j] = a.Next(3);
else mas[i, j] = -a.Next(2);
textBox3.Text = textBox3.Text + Convert.ToString(mas[i, j]) + " ";
}
textBox3.Text = textBox3.Text + System.Environment.NewLine;
}
#region найти сумму эллементов
int p = 0;
for (int i = 0; i < n; i++)
{
for (int s = 0; s < m; s++)
{
if (mas[i, s] < 0)
{
for (int j = 0; j < 9; j++)
p += mas[i, j];
}
label4.Text = "Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент: " + Convert.ToString(p);
}
}
#endregionРешение задачи: «Программа сравнения матриц»
textual
Листинг программы
using System;
using System.Collections.Generic;
namespace Matrix
{
class Program
{
static void Main(string[] args)
{
int[,] matr = { { 1, 2, 3, 4 },
{ 2, 3, 9, 5 },
{ 3, 1, 3, 6 },
{ 4, 5, 6, 1 } };
foreach (int k in FindK(matr))
Console.Write(k + " ");
Console.ReadKey();
}
static IEnumerable<int> FindK(int[,] matrix)
{
int n = matrix.GetLength(0);
for (int i = 0; i < n; i++)
{
bool isEqual = true;
for (int j = 0; j < n; j++)
{
if (matrix[i, j] != matrix[j, i])
{
isEqual = false;
break;
}
}
if (isEqual) yield return i;
}
}
}
}