Дана матрица. Найти произведение элементов в тех строках, которые не содержат отрицательных элементов - C#

Узнай цену своей работы

Формулировка задачи:

C #дана матрица. Найти произведение элементов в тех строках, которые не содержат отрицательных элементов. Помогите почему произведение считает и отрицательные числа ?
static void Main(string[] args)
        {
            Console.Write("Введите размер квадратной матрицы: ");
            int r = Convert.ToInt16(Console.ReadLine());
            int[,] matrix = new int[r, r];
            Random random = new Random();
            int rand;
            //Выводим матрицу на экран
            for (int i = 0; i < r; i++)
            {
                for (int j = 0; j < r; j++)
                {
                    rand = random.Next(-10, 100);
                    matrix[i, j] = rand;
                    Console.Write(matrix[i, j] + "\t");
                }
                Console.WriteLine();
            }
            
            //Произведение элементов в тех строках, которые не содержат отрицательных элементов;
 
            int[] RowTotal = new int[r];
             for (int i = 0; i < r; i++)
            {
                for (int j = 0; j < r; j++)
                {
                    if (matrix[i, j] > 0)
                    {
                        if (!RowTotal[i].Equals(0))
                        RowTotal[i] *= matrix[i, j];
                        else RowTotal[i] = matrix[i, j]; 
                     }
                }
             }              
                         for (int i = 0; i < r; i++)
                Console.WriteLine("Строка  {0} матрицы имеет произведение положительных элементов =: {1}", i+1, RowTotal[i]);

Решение задачи: «Дана матрица. Найти произведение элементов в тех строках, которые не содержат отрицательных элементов»

textual
Листинг программы
using System;
 
class Program
{
    static void Main()
    {
        Random rnd = new Random();
        int[,] matrix = new int[5, 6];
        for (int i = 0; i < matrix.GetLength(0); i++)
        {
            for (int j = 0; j < matrix.GetLength(1); j++)
            {
                Console.Write(matrix[i, j] = rnd.Next(10));
                Console.Write("\t");
            }
            Console.WriteLine();
        }
        int max = Int32.MinValue;
        for (int i = 1 - matrix.GetLength(0); i < matrix.GetLength(1); i++)
        {
            int sum = 0;
            int j = i < 0 ? -i : 0;
            int k = i > 0 ? i : 0;
            while (j < matrix.GetLength(0) && k < matrix.GetLength(1))
            {
                sum += matrix[j++, k++];
            }
            Console.WriteLine(sum);
            max = Math.Max(max, sum);
        }
        Console.WriteLine(max);
    }
}

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


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

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

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