Возникли сложности при написании программы - C#

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

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

Задача: Дана двумерная квадратная матрица. Получить массив b1 …bn , где bi - это сумма элементов, расположенных за первым отрицательным элементом в i-той строке (если все элементы строки неотрицательны, то принять bi=100).
Листинг программы
  1. class Program
  2. {
  3. static void Matrix(string a, int[,] mas)
  4. {
  5. Console.WriteLine(a);
  6. for (int i = 0; i < mas.GetLength(0); i++)
  7. {
  8. for (int j = 0; j < mas.GetLength(1); j++)
  9. Console.Write("{0} ", mas[i, j]);
  10. Console.WriteLine();
  11. }
  12. }
  13. static void Mas_B(string a, int[,] mas)
  14. {
  15. int bi = 0;
  16. for (int i = 0; i < mas.GetLength(0); i++)
  17. {
  18. for (int j = 0; j < mas.GetLength(1); j++)
  19. {
  20. if (mas[i, j] < 0)
  21. bi += mas[i, j];
  22. Console.WriteLine("bi" + bi);
  23. int[,] Bi = new int[i, j];
  24. Console.WriteLine(Bi[i,j]);
  25. }
  26. }
  27. }
  28. static void Main(string[] args)
  29. {
  30. int[,] MyArray ={ {0, -1, 2}, {4, -5, 6}, {7, -8, 9}};
  31. Matrix("Матрица квадратная: ", MyArray);
  32. Mas_B(" ", MyArray);
  33. }
  34. }
  35. }
Программа находит отрицательные элементы массива и выводит их сумму. А как получить массив b1 …bn? Я так думаю, что в него нужно записать отрицательные элементы или я не прав?

Решение задачи: «Возникли сложности при написании программы»

textual
Листинг программы
  1. using System;
  2.  
  3. namespace MatrixTask {
  4.     class Program {    
  5.    
  6.         static int[,] CreateMatrix(int dimension) {
  7.             Random rand = new Random();
  8.             int[,] temp = new int[dimension,dimension];
  9.             for (int i = 0; i < dimension; i++) {
  10.                 for (int j = 0; j < dimension; j++) {
  11.                     temp[i, j] = rand.Next(-100, 100);
  12.                 }
  13.             }
  14.             return temp;
  15.         }
  16.  
  17.         static void PrintMatrix(int[,] matrix) {
  18.             for (int i = 0; i < matrix.GetLength(0); i++) {
  19.                 for (int j = 0; j < matrix.GetLength(1); j++) {
  20.                     Console.Write(matrix[i,j] + " ");
  21.                 }
  22.                 Console.WriteLine();
  23.             }
  24.         }
  25.  
  26.         static int[] GetResultArray(int[,] matrix) {
  27.             int[] temp = new int[matrix.GetLength(0)];                      
  28.             for (int i = 0; i < matrix.GetLength(0); i++) {
  29.                 int sum = 0;
  30.                 bool negElement = false;
  31.                 for (int j = 0; j < matrix.GetLength(1); j++) {
  32.                     if (negElement) {
  33.                         sum += matrix[i, j];
  34.                     }
  35.  
  36.                     if (matrix[i,j] < 0) {
  37.                         negElement = true;                        
  38.                     }                    
  39.                 }
  40.                 if (!negElement) {
  41.                     temp[i] = 100;
  42.                 }
  43.                 else {
  44.                     temp[i] = sum;
  45.                 }
  46.             }
  47.             return temp;
  48.         }
  49.  
  50.  
  51.         static void Main(string[] args) {
  52.             int dim;
  53.             do {
  54.                 Console.Write("Input matrix dimension: ");
  55.                 int.TryParse(Console.ReadLine(), out dim);
  56.                 Console.Clear();
  57.             } while (dim < 2);
  58.  
  59.             int[,] matrix = CreateMatrix(dim);
  60.             PrintMatrix(matrix);
  61.             Console.WriteLine();
  62.             int[] resultArray = GetResultArray(matrix);
  63.             for (int i = 0; i < resultArray.Length; i++) {
  64.                 Console.Write(resultArray[i] + " ");
  65.             }
  66.  
  67.             Console.ReadKey(true);
  68.         }
  69.     }    
  70. }

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


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

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

12   голосов , оценка 3.75 из 5

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

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

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