Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент - C# (185928)
Формулировка задачи:
Добрый день. Помогите, пожалуйста, с написанием программы.
Вот само задание:
Для заданной матрицы размером 8х8 найти такие k, при которых k-я строка матрицы совпадает с k-м столбцом.
Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент.
Заранее спасибо.
Решение задачи: «Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент»
textual
Листинг программы
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)
{
int[,] matrix = GetRandomMatrix(8, 8); //create matrix
PrintMatrix(matrix);
Dictionary<int,int> result = GetSumOfRows(matrix);
foreach(var value in result)
Console.WriteLine("Row : {0}, Summa {1}",value.Key, value.Value);
Console.ReadLine();
}
private static int[,] GetRandomMatrix(int rows, int columns)
{
Random random = new Random();
int[,] matrix = new int[rows, columns];
for (int i = 0; i < matrix.GetLength(0); i++)
for (int j = 0; j < matrix.GetLength(1); j++)
matrix[i, j] = random.Next(-9, 9);
return matrix;
}
private static Dictionary<int,int> GetSumOfRows(int[,] matrix)
{
Dictionary<int, int> result = new Dictionary<int, int>();
for (int i = 0; i < matrix.GetLength(0); i++)
{
for (int j = 0; j < matrix.GetLength(1); j++)
{
if(matrix[i,j] < 0)
{
int sum = 0;
j = -1;
while(++j < matrix.GetLength(1))
sum += matrix[i, j];
result.Add(i,sum);
continue;
}
}
}
return result;
}
private static void PrintMatrix(int[,] matrix)
{
for (int i = 0; i < matrix.GetLength(0); i++)
{
Console.WriteLine();
for (int j = 0; j < matrix.GetLength(1); j++)
Console.Write("\t{0}", matrix[i, j]);
}
Console.Write("\n\n");
}
}
}