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