Дана матрица. Найти произведение элементов в тех строках, которые не содержат отрицательных элементов - 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); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д