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

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

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

Здравствуйте! Не знаю возможно ли так сделать или нет, но преподаватель требует сделать так, чтобы если в строке присутствует хотя бы один отрицательный элемент, произведение совсем не считать) Помогите пожалуйста. Вот мой исходный код,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] mat; // объявляем матрицу
 
            Console.WriteLine("Введите размер матрицы:");
            int size = int.Parse(Console.ReadLine()); // задаем её размерность
 
            mat = new int[size, size]; // инициализируем матрицу
 
            Random rnd = new Random();
 
            /*
             * Заполняем матрицу случайными значениями
             */
 
            for (int i = 0; i < size; i++)
            {
                for (int i2 = 0; i2 < size; i2++)
                {
                    mat[i, i2] = rnd.Next(-size, size);
                }
            }
 
            /*
             * Демонстрируем матрицу на экране 
             * консоли
             */
 
            for (int i = 0; i < size; i++)
            {
                for (int i2 = 0; i2 < size; i2++)
                {
                    Console.Write("{0}\t", mat[i, i2]);
                }
                Console.WriteLine();
            }
 
            /*
             * Перемножаем только положительные значения матрицы
             * в предобъявленную переменную
             */
 
            int[] RowTotal = new int[size];
 
            for (int i = 0; i < size; i++)
            {
                for (int i2 = 0; i2 < size; i2++)
                {
                    if (mat[i, i2] > 0)
                    {
                        if (!RowTotal[i].Equals(0))
                            RowTotal[i] *= mat[i, i2];
                        else RowTotal[i] = mat[i, i2];
 
                    }
                }
 
            }
 
            /*
             * Выводим полученные значения
             * на экран консоли
             */
            for (int i = 0; i < size; i++)
                Console.WriteLine("Строка  {0} матрицы имеет произведение не отрицательных элементов равное: {1}", i + 1, RowTotal[i]);
            int sz = 3 - 1, max = int.MinValue;
 
            /*
             * Выводим максимум среди сумм элементов диагоналей
             * на экран консоли
             */

            int[] h = new int[2 * size - 1];
            for (int r = 0; r < size; r++)
            {
                for (int c = 0; c < size; c++)
                {
                    h[c - r + size - 1] += mat[r, c];
                }
            }
 
            Console.WriteLine(h.Max());

            Console.ReadKey(true);
        }
    }
}

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

textual
Листинг программы
            int?[] RowTotal = new int?[size];
 
            for (int i = 0; i < size; i++)
            {
                for (int i2 = 0; i2 < size; i2++)
                {
                    if (mat[i, i2] > 0)
                    {
                        if (RowTotal[i] == null) RowTotal[i] = mat[i, i2];
                        else RowTotal[i] *= mat[i, i2];
                    }
                }
            }
 
 
            foreach (var e in RowTotal)
            {
                Console.WriteLine(e == null ? "null" : String.Join(" ", e));
            }

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


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

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

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