Для заданной матрицы 8х8 найти такие k, при которых k-я строка матрицы совпадает с k-м столбцом - C#
Формулировка задачи:
Для заданной матрицы 8х8 найти такие k, при которых k-я строка матрицы совпадает с k-м столбцом. Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент.
Кто сможет - помогите с решением (как можно подробнее, если будет возможность).
Решение задачи: «Для заданной матрицы 8х8 найти такие k, при которых k-я строка матрицы совпадает с k-м столбцом»
textual
Листинг программы
using System;
using System.IO;
using System.Collections.Generic;
using System.Globalization;
class Temp
{
private const int Size = 8;
public static void Main (string[] args)
{
double[,] matrix = new double[Size, Size];//матрица
List<int> matchKNumbers = new List<int>();//значения k
try
{//читаем матрицу из файла
using (var file = new StreamReader(@"C:\somefile.txt"))
for(int i = 0; i < Size; i++)
for (int j = 0; j < Size; j++)
matrix[i,j] = double.Parse(file.ReadLine(), CultureInfo.InvariantCulture);
}
catch (IOException)
{
Console.WriteLine("Ошибка чтения данных");
Console.ReadKey();
return;
}
for(int i = 0; i < Size; i++)
{//ищем k
bool doesMatch = true;
for (int j = 0; j < Size; j++)
if (matrix[i,j] != matrix[j,i])
doesMatch = false;
if (doesMatch)
matchKNumbers.Add(i);
}
foreach(int number in matchKNumbers)
Console.WriteLine("k = {0}", number);
for(int i = 0; i < Size; i++)
{//ищем строки с отрицательными элементами и считаем суммы
bool hasNegativeItem = false;
for (int j = 0; j < Size; j++)
if (matrix[i,j] < 0.0)
hasNegativeItem = true;
if (hasNegativeItem)
{
double sum = 0.0;
for (int j = 0; j < Size; j++)
sum += matrix[i,j];
Console.WriteLine("Сумма строки {0} равна {1}", i, sum);
}
}
Console.ReadKey();
}
}