Поменять местами минимальный и максимальный элемент матрицы - C#
Формулировка задачи:
Нужно поменять местами максимальный и минимальный элементы двумерного массива. Нашел примеры подобной операции с одномерным массивом, пока не получается воспроизвести это на двумерном. Нужно работать с индексами этих элементов?
using System; namespace Abcd { class Program { static void Main() { Console.Write("Введите длину массива: "); int n = Convert.ToInt32(Console.ReadLine()); // Считываем строку, переводим в число. Console.Write("Введите ширину массива: "); int m = Convert.ToInt32(Console.ReadLine()); int[,] matrix = new int[n, m]; //Объявляем массив строк длиной n и шириной m (которую ввёл пользователь) for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) { Console.Write("Введите элемент №{0}{1}:\r\n ", i, j); matrix[i, j] = Convert.ToInt32(Console.ReadLine()); //Заполняем его } Console.WriteLine("Массив состоит из следующих элементов:"); for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) { Console.WriteLine(matrix[i, j]); } int min = matrix[0, 0]; int max = matrix[0, 0]; for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) { if (matrix[i, j] > max) { max = matrix[i, j]; } if (matrix[i, j] < min) { min = matrix[i, j]; } } Console.WriteLine("Максимальный элемент массива {0}", max); Console.WriteLine("Минимальный элемент массива элемент массива {0}", min); Console.ReadLine(); } } }
Решение задачи: «Поменять местами минимальный и максимальный элемент матрицы»
textual
Листинг программы
using System; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { int[,] arr = new int[5, 5]; Random random = new Random(); for (int i = 0; i < arr.GetLength(0); i++) { for (int j = 0; j < arr.GetLength(1); j++) { arr[i, j] = random.Next(0, 50); } } PrintArray(arr); int minI = 0, minJ = 0, maxI = 0, maxJ = 0; for (int i = 0; i < arr.GetLength(0); i++) { for (int j = 0; j < arr.GetLength(1); j++) { if (arr[minI, minJ] > arr[i, j]) { minI = i; minJ = j; } else if (arr[maxI, maxJ] < arr[i, j]) { maxI = i; maxJ = j; } } } Console.WriteLine("Минимальный: {0}\tМаксимальный: {1}", arr[minI, minJ], arr[maxI, maxJ]); var tmp = arr[maxI, maxJ]; arr[maxI, maxJ] = arr[minI, minJ]; arr[minI, minJ] = tmp; PrintArray(arr); Console.ReadKey(); } static void PrintArray(int[,] array) { for (int i = 0; i < array.GetLength(0); i++) { for (int j = 0; j < array.GetLength(1); j++) { Console.Write(array[i, j] + " "); } Console.WriteLine(); } Console.WriteLine(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д