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

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


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

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

10   голосов , оценка 4 из 5
Похожие ответы