Найти максимальный элемент в столбце и записать строку в массив - C#
Формулировка задачи:
В каждой строке матрицы A найти наименьший элемент и поменять его местами с первым элементом строки. Определить строку, в которой первый элемент является крупнейшим среди первых элементов других строк, переписать его элементы в одномерный массив B и инвертировать порядок их расположения.
Нужно дописать функцию по нахождению максимального элемента в первом столбце и записи строки в которой он находится в одномерный массив В при этом инвертировать все элементы в этой строке.
Код:
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.IO; namespace ConsoleApplication5 { class Program { static Random rnd = new Random(); static void Main(string[] args) { Console.WriteLine("Введите количество строк матрицы: "); int rows = int.Parse(Console.ReadLine()); Console.WriteLine("Введите количество столбцов матрицы: "); int col = int.Parse(Console.ReadLine()); int[][] A = new int[rows][]; int[] B; for (int i = 0; i < A.Length; i++) { A[i] = new int[rnd.Next(1, col + 1)]; for (int j = 0; j < A[i].Length; j++) { A[i][j] = rnd.Next(1, 101); // если диапазон от 1 до 100 включительно Console.Write(A[i][j] + "\t"); } Console.WriteLine(); } Console.WriteLine("Меняем местами:"); for (int i = 0; i < A.Length; i++) { int ind = 0, min = A[i][ind]; for (int j = 0; j < A[i].Length; j++) if (A[i][j] < min) { ind = j; min = A[i][j]; } int temp = A[i][0]; A[i][0] = A[i][ind]; A[i][ind] = temp; for (int j = 0; j < A[i].Length; j++) Console.Write(A[i][j] + "\t"); Console.WriteLine(); } Console.ReadKey(true); } } }
Решение задачи: «Найти максимальный элемент в столбце и записать строку в массив»
textual
Листинг программы
using System; using System.Linq; using static System.String; using static System.Environment; using static System.Linq.Enumerable; using static System.Console; namespace ConsoleApp2 { class Program { static void Main(string[] args) { Random rnd = new Random(); Write("Количество строк: "); int n = int.Parse(ReadLine()); Write("Количество столбцов: "); int m = int.Parse(ReadLine()); int[][] a = Range(0, n).Select(v => Range(0,m).Select(c => rnd.Next(100)).ToArray()).ToArray(); //генерация массива WriteLine("A:" + NewLine + Join(NewLine, a.Select(v => Join(" ", v))) + NewLine);//начальный массив for (int i = 0; i < n; i++) { int jmax = a[i].Select((v, ii) => new { val = v, ind = ii }).Aggregate((c1, c2) => (c1.val > c2.val) ? c1 : c2).ind;//максимальный в строке int x = a[i][jmax]; //замена a[i][jmax] = a[i][0]; a[i][0] = x; } WriteLine("Изменённый A:" + NewLine + Join(NewLine, a.Select(v => Join(" ", v))) + NewLine); //изменённый массив int[] b = a.OrderByDescending(v => v.First()).First().Reverse().ToArray(); //Обратная строка с максимальным элементом WriteLine($"В: {Join(" ", b.Select(v => v))}"); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д