Найти максимальный элемент в столбце и записать строку в массив - C#

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

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

В каждой строке матрицы A найти наименьший элемент и поменять его местами с первым элементом строки. Определить строку, в которой первый элемент является крупнейшим среди первых элементов других строк, переписать его элементы в одномерный массив B и инвертировать порядок их расположения. Нужно дописать функцию по нахождению максимального элемента в первом столбце и записи строки в которой он находится в одномерный массив В при этом инвертировать все элементы в этой строке. Код:
Листинг программы
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Text.RegularExpressions;
  7. using System.Threading.Tasks;
  8. using System.IO;
  9. namespace ConsoleApplication5
  10. {
  11. class Program
  12. {
  13. static Random rnd = new Random();
  14. static void Main(string[] args)
  15. {
  16. Console.WriteLine("Введите количество строк матрицы: ");
  17. int rows = int.Parse(Console.ReadLine());
  18. Console.WriteLine("Введите количество столбцов матрицы: ");
  19. int col = int.Parse(Console.ReadLine());
  20. int[][] A = new int[rows][];
  21. int[] B;
  22. for (int i = 0; i < A.Length; i++)
  23. {
  24. A[i] = new int[rnd.Next(1, col + 1)];
  25. for (int j = 0; j < A[i].Length; j++)
  26. {
  27. A[i][j] = rnd.Next(1, 101); // если диапазон от 1 до 100 включительно
  28. Console.Write(A[i][j] + "\t");
  29. }
  30. Console.WriteLine();
  31. }
  32. Console.WriteLine("Меняем местами:");
  33. for (int i = 0; i < A.Length; i++)
  34. {
  35. int ind = 0, min = A[i][ind];
  36. for (int j = 0; j < A[i].Length; j++)
  37. if (A[i][j] < min) { ind = j; min = A[i][j]; }
  38. int temp = A[i][0];
  39. A[i][0] = A[i][ind];
  40. A[i][ind] = temp;
  41.  
  42. for (int j = 0; j < A[i].Length; j++)
  43. Console.Write(A[i][j] + "\t");
  44. Console.WriteLine();
  45. }
  46. Console.ReadKey(true);
  47. }
  48. }
  49. }

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

textual
Листинг программы
  1. using System;
  2. using System.Linq;
  3. using static System.String;
  4. using static System.Environment;
  5. using static System.Linq.Enumerable;
  6. using static System.Console;
  7.  
  8. namespace ConsoleApp2
  9. {
  10.     class Program
  11.     {
  12.         static void Main(string[] args)
  13.         {
  14.             Random rnd = new Random();
  15.             Write("Количество строк: ");    int n = int.Parse(ReadLine());
  16.             Write("Количество столбцов: "); int m = int.Parse(ReadLine());
  17.             int[][] a = Range(0, n).Select(v => Range(0,m).Select(c => rnd.Next(100)).ToArray()).ToArray(); //генерация массива
  18.             WriteLine("A:" + NewLine + Join(NewLine, a.Select(v => Join(" ", v))) + NewLine);//начальный массив
  19.             for (int i = 0; i < n; i++)
  20.             {
  21.                 int jmax = a[i].Select((v, ii) => new { val = v, ind = ii }).Aggregate((c1, c2) => (c1.val > c2.val) ? c1 : c2).ind;//максимальный в строке
  22.                 int x = a[i][jmax]; //замена
  23.                 a[i][jmax] = a[i][0];
  24.                 a[i][0] = x;
  25.             }
  26.             WriteLine("Изменённый A:" + NewLine + Join(NewLine, a.Select(v => Join(" ", v))) + NewLine); //изменённый массив
  27.             int[] b = a.OrderByDescending(v => v.First()).First().Reverse().ToArray(); //Обратная строка с максимальным элементом
  28.             WriteLine($"В: {Join(" ", b.Select(v => v))}");
  29.            
  30.         }
  31.     }
  32. }

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


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

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

10   голосов , оценка 4 из 5

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

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

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