Другие языки программирования и технологии

Помогите с задачей в C#, пожалуйста)

Найти максимальный и минимальный элементы массива и поменять местами столбцы, в которых они расположены. Вывести на экран изменённый массив.
У меня вообще не получается:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication4вар. _5
{
class Program
{
static void Main(string[] args)
{
Console.Write("Введите размерность массива: n = ");
int n = Convert.ToInt32(Console.ReadLine());
Random r = new Random();
int k1, k2;
int[,] A = new int[n, n];
int[,] B = new int[n, n];
Console.Write("Введите нижнюю границу диапазона: k1 = ");
k1 = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите верхнюю границу диапазона: k2 = ");
k2 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("\n Массив A, заполненный методом Next()\n");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
A[i, j] = r.Next(k1, k2);
B[i, j] = A[i, j];
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
Console.Write("{0}\t", A[i, j]);
}
Console.WriteLine("");
}
// Найти среднее арифметическое четных элементов массива, расположенных в нечетных строках
double sarifm = 0, sum = 0, kol = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if ((i + 1) % 2 != 0 && A[i, j] % 2 == 0) { sum += A[i, j]; kol++; }
}
}
if (kol != 0)
{
sarifm = sum / kol;
Console.WriteLine("sarifm = {0}", sarifm);
}
//НАЙТИ MIN и MAX ЭЛЕМЕНТЫ МАССИВА И ПОМЕНЯТЬ ИХ МЕСТАМИ
//ВЫВЕСТИ ИЗМЕНЁННЫЙ МАССИВ НА ЭКРАН
int AMAX = A[0, 0], AMIN = A[0, 0], iMAX = 0, jMAX = 0, iMIN = 0, jMIN = 0;
for (int i = 0; i < n; i++)
for (int j = 0; j < 0; j++)
{
if (A[i, j] > AMAX) { AMAX = A[i, j]; iMAX = i; jMAX = j; }
if (A[i, j] < AMIN) { AMIN = A[i, j]; iMIN = i; jMIN = j; }
}
Console.WriteLine("\n MAX = {0}, MIN = {1}", AMAX, AMIN);
int X = A[iMAX, jMAX];
A[iMAX, jMAX] = A[iMIN, jMIN];
A[iMIN, jMIN] = X;
Console.ReadLine();
}
}
}
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
int[,] arr = new int[n, n];

Random rand = new Random();

int k1 = int.Parse(Console.ReadLine());
int k2 = int.Parse(Console.ReadLine());

// заполнение массива рандомными числами от k1 до k2
for(int i = 0; i < n; i ++)
for(int j = 0; j < n; j ++)
arr[i, j] = rand.Next(k1, k2);

int max = arr[0, 0];
int min = arr[0, 0];

int saveMinJ = 0;
int saveMaxJ = 0;

// ищем макс. и мин ел-ты. записываем номера столбцов макс и мин ел-в
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (max < arr[i, j])
{
max = arr[i, j];
saveMaxJ = j;
}

if (min > arr[i, j])
{
min = arr[i, j];
saveMinJ = j;
}
}
}

Console.WriteLine();

// вывод массива
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
Console.Write(arr[i, j] + " ");
}
Console.WriteLine();
}

Console.WriteLine();
Console.WriteLine("min" + " " + min + " row " + saveMinJ);
Console.WriteLine("max" + " " + max + " row " + saveMaxJ);

int saveValue = 0;

// меняем столбцы местами
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
saveValue = arr[i, saveMaxJ];
arr[i, saveMaxJ] = arr[i, saveMinJ];
arr[i, saveMinJ] = saveValue;
}
}

Console.WriteLine();

// измененный массив
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
Console.Write(arr[i, j] + " ");
}
Console.WriteLine();
}

}
Валера Курмелёв
Валера Курмелёв
1 495
Лучший ответ
Цикл, который никогда не будет выполняться, так как начальное значение уже не выполняет условие.
Alex Telegin
Alex Telegin
79 284
Константин Южалин До этого
//НАЙТИ MIN и MAX ЭЛЕМЕНТЫ МАССИВА И ПОМЕНЯТЬ ИХ МЕСТАМИ
//ВЫВЕСТИ ИЗМЕНЁННЫЙ МАССИВ НА ЭКРАН
у меня всё работает, а дальше нет
1) Это чиво: "for (int j = 0; j < 0; j++)..."? Почему меньше 0?
2) Вы меняете местами не столбцы, а максимальный элемент с минимальным.
Константин Южалин В условии так написано: Найти максимальный и минимальный элементы массива и поменять местами столбцы