Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент - 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");
        }
    }
}

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


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

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

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