Нужно найти номер столбца и строки, сумма элементов которых самая большая - C#

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

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

Добрый час суток! Есть такая задача. дана матрица целых чисел mxn, m n вводятся с клавиатуры m принадлежит [2;5] n принадлежит [2;10] . Массив заполняем вручную. Нужно найти номер столбика и рядочка ,сумма элементов самая большая. Не могу понять,сам алгоритм нахождение этого рядочка или столбика,ищя там максимальное значение(для двумерного массива,я понимаю,что там все аналогично...) Посмотрел в интернете такого рода задание,оно почти везде реализуется с помощью for(){for(){}}.
Листинг программы
  1. using System;
  2.  
  3. namespace Little
  4. {
  5. class Program
  6. {
  7. static int Vvod1() {
  8. Console.WriteLine("Введите значение m(рядочки)");
  9. int m = 0;
  10. do
  11. {
  12. Console.WriteLine("Значение m должно быть в пределах от 2 до 5");
  13. m = int.Parse(Console.ReadLine());
  14. } while (m<2|m>5);//проверяем ввод
  15. return m; //возвращаем значение m
  16. }
  17. static int Vvod2() {
  18. int n = 0;
  19. Console.WriteLine("Введите значение n(столбики)");
  20. do
  21. {
  22. n = int.Parse(Console.ReadLine());
  23. } while (n < 2 | n > 10);
  24. return n;// аналогично vvod1
  25. }
  26. static int[,] Res(int m,int n) {
  27. int[,] matrix = new int[m, n];
  28. Console.WriteLine("Введите элементы матрицы");
  29. //заполняем массив вручную
  30. for (int i=0;i<matrix.GetLength(0);i++) {
  31. for (int j=0;j<matrix.GetLength(1);j++) {
  32. matrix[i, j] = int.Parse(Console.ReadLine());
  33. }
  34.  
  35. }
  36. return matrix;
  37. }
  38. static int LogicA(int a, int[,] array) {
  39. int max1=0;
  40. for (int i=0;i<array.GetLength(0);i++) {
  41. int sum1 = 0;
  42. for (int j=0;j<array.GetLength(1);j++) {
  43. sum1 += array[i, j];//суммируем элементы
  44. if (sum1 > max1) {
  45. max1 = sum1;
  46. }
  47. }
  48. }
  49. return a;
  50. }
  51. static void Main(string[] args)
  52. {
  53. int m = Vvod1();// m будет равняться значению,которое вернет нам Vvod1
  54. int n = Vvod2(); // значение которое вернет нам Vvod2
  55. int[,] array = Res(m, n);
  56.  
  57. }
  58. }
  59. }
в методе LogicA к примеру,там где найти для рядочков,помогите написать цикл в цикле,чтоб я понимал.. и обьясните пожалуйста комментариями,чтоб понятно было,спасибо большое. А я попробую так же потом для столбиков,как я понимаю,там нужно просто i и j поменять будет. Спасибо заранее. Просто цикл в цикле пожалуйста помогите,чтоб искало правильно

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

textual
Листинг программы
  1.  static void maxSum(int[,] matrix)
  2.         {
  3.            //сумма каждой строки
  4.             int[] stroki =new int[matrix.GetLength(0)];
  5.  
  6.            for (int i = 0; i < matrix.GetLength(0); i++)
  7.            {
  8.                for (int j = 0; j < matrix.GetLength(1); j++)
  9.                {
  10.                    stroki[i] += matrix[i, j];
  11.                }
  12.            }
  13.          
  14.            int[]stolbci=new int[matrix.GetLength(1)];
  15.  
  16.            //сумма каждого столбца
  17.            for (int i = 0; i < matrix.GetLength(1); i++)
  18.            {
  19.                for (int j = 0; j < matrix.GetLength(0); j++)
  20.                {
  21.                    stolbci[i] += matrix[j,i];
  22.                }
  23.            }
  24.  
  25.           //теперь проходим по полученный данным циклом for
  26.            int max = int.MinValue;
  27.            int stroka = 0, stolb = 0;
  28.            for (int i = 0; i < stroki.Length; i++)
  29.            {
  30.                for (int j = 0; j < stolbci.Length; j++)
  31.                {
  32.                     // суммтруем для каждой строки и записываем в переменную сумму и номера столбцов и строк
  33.                    int sum = stroki[i] + stolbci[j];
  34.                    if (sum > max)
  35.                    {
  36.                        max = sum;
  37.                        stroka = i;
  38.                        stolb = j;
  39.                    }
  40.  
  41.                }
  42.            }
  43.            Console.WriteLine("Номер строки {0}",stroka);
  44.            Console.WriteLine("Номер столбца {0}",stolb);
  45.            Console.WriteLine(max);
  46.  
  47.  
  48.         }

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


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

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

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

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

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

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