Найти максимальный элемент в столбце и записать строку в массив - 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))}");
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д