Найти максимальный элемент в столбце и записать строку в массив - 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))}");
}
}
}