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

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

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

Здравствуйте! Не знаю возможно ли так сделать или нет, но преподаватель требует сделать так, чтобы если в строке присутствует хотя бы один отрицательный элемент, произведение совсем не считать) Помогите пожалуйста. Вот мой исходный код,
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace ConsoleApplication1
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. int[,] mat; // объявляем матрицу
  12. Console.WriteLine("Введите размер матрицы:");
  13. int size = int.Parse(Console.ReadLine()); // задаем её размерность
  14. mat = new int[size, size]; // инициализируем матрицу
  15. Random rnd = new Random();
  16. /*
  17. * Заполняем матрицу случайными значениями
  18. */
  19. for (int i = 0; i < size; i++)
  20. {
  21. for (int i2 = 0; i2 < size; i2++)
  22. {
  23. mat[i, i2] = rnd.Next(-size, size);
  24. }
  25. }
  26. /*
  27. * Демонстрируем матрицу на экране
  28. * консоли
  29. */
  30. for (int i = 0; i < size; i++)
  31. {
  32. for (int i2 = 0; i2 < size; i2++)
  33. {
  34. Console.Write("{0}\t", mat[i, i2]);
  35. }
  36. Console.WriteLine();
  37. }
  38. /*
  39. * Перемножаем только положительные значения матрицы
  40. * в предобъявленную переменную
  41. */
  42. int[] RowTotal = new int[size];
  43. for (int i = 0; i < size; i++)
  44. {
  45. for (int i2 = 0; i2 < size; i2++)
  46. {
  47. if (mat[i, i2] > 0)
  48. {
  49. if (!RowTotal[i].Equals(0))
  50. RowTotal[i] *= mat[i, i2];
  51. else RowTotal[i] = mat[i, i2];
  52. }
  53. }
  54. }
  55. /*
  56. * Выводим полученные значения
  57. * на экран консоли
  58. */
  59. for (int i = 0; i < size; i++)
  60. Console.WriteLine("Строка {0} матрицы имеет произведение не отрицательных элементов равное: {1}", i + 1, RowTotal[i]);
  61. int sz = 3 - 1, max = int.MinValue;
  62. /*
  63. * Выводим максимум среди сумм элементов диагоналей
  64. * на экран консоли
  65. */
  66.  
  67. int[] h = new int[2 * size - 1];
  68. for (int r = 0; r < size; r++)
  69. {
  70. for (int c = 0; c < size; c++)
  71. {
  72. h[c - r + size - 1] += mat[r, c];
  73. }
  74. }
  75. Console.WriteLine(h.Max());
  76.  
  77. Console.ReadKey(true);
  78. }
  79. }
  80. }

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

textual
Листинг программы
  1.             int?[] RowTotal = new int?[size];
  2.  
  3.             for (int i = 0; i < size; i++)
  4.             {
  5.                 for (int i2 = 0; i2 < size; i2++)
  6.                 {
  7.                     if (mat[i, i2] > 0)
  8.                     {
  9.                         if (RowTotal[i] == null) RowTotal[i] = mat[i, i2];
  10.                         else RowTotal[i] *= mat[i, i2];
  11.                     }
  12.                 }
  13.             }
  14.  
  15.  
  16.             foreach (var e in RowTotal)
  17.             {
  18.                 Console.WriteLine(e == null ? "null" : String.Join(" ", e));
  19.             }

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


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

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

11   голосов , оценка 3.818 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы