Untitled

                Never    
C#
       
using System; 

namespace номер_9 
{ 
class Program 
{ 
static void Main(string[] args) 
{ 
Console.WriteLine("Введите количество сторок в массиве"); 
int n = Convert.ToInt32(Console.ReadLine()); 
Console.WriteLine("Введите количество столбцов в массиве"); 
int m = Convert.ToInt32(Console.ReadLine()); 
int[,] A = new int[n, m];//создание массива 
int i = 0; 
int j = 0; 
Random rand = new Random();//включение рандома 
A[0, 0] = rand.Next(100);//объявление и ввод первого элемента
int min = A[0, 0];//объявление и присвоение начального значения минимуму 
int mini = 0;//объявление и присвоение начального значения номеру СТРОКИ минимума 
int minj = 0;//объявление и присвоение начального значения номеру СТОЛБЦА минимума 
//ввод первой строки массива 
for (j=1; j < m; j++) 
{ 
A[0, j] = rand.Next(100);//присвоение значения элементу 
//проверка на минимум (если новый элемент меньше уже установленного минимума, то смена значений для 
строки и столбца) 
if (A[0, j] < min) 
{ 
min = A[i, j]; 
mini = i; 
minj = j; 
} 
} 
i++;//переход на вторую строку 
//ввод остального массива 
while (i!=n)//идем до n (количество строк) 
{ 
j = 0;//обнуление j (счетчик для столбцов, второй индекс элемента) 
while (j != m)//пока j не дойдет до m (количество столбцов) 
{ 
A[i, j] = rand.Next(100);//ввод нового элемента 
//проверка на минимум 
if (A[i, j] < min) 
{ 
min = A[i, j]; 
mini = i; 
minj = j; 
} 
j++;//увеличение j (переходим к следующему элементу строки с номером i) 
} 
i++;//увеличение i(переходим к следующей строке) 
} 
//вывод введенного массива 
for (i = 0; i < n; i++) 
{ 
for (j = 0; j < m; j++) 
{ 
Console.Write(A[i, j] + " "); 
} 
Console.WriteLine(); 
} 
Console.WriteLine();//отступ 
int c = 0;//объявление переменной, с помощью которой будем менять местами элементы 
//ставим столбец с найденным минимальным элементом на первое место (меняем с первым столбцом) 
for (i = 0; i < n; i++) 
{ 
c = A[i, 0]; 
A[i, 0] = A[i, minj]; 
A[i, minj] = c; 
} 
//перестановка остальных столбцов 
for (j = 1; j < m - 1; j++)//m-1 потому что один столбец (первый) уже установлен правильно 
{ 
min = A[mini, j];//берем новый начальный минимум в этой строке 
minj = j;//меняем номер столбца минимума (потому что поменяли минимум). Строку не меняем, потому что она у нас статична 
//поиск нового минимума в оставшейся (неотсортированной) строке 
for (int j1 = j+1; j1 < m; j1++) 
{ 
if (A[mini, j1] < min) 
{ 
min = A[mini, j1]; 
minj = j1; 
} 
} 
//ставим столбец с новым минимумом на свое место 
for (i = 0; i < n; i++) 
{ 
c = A[i, minj]; 
A[i, minj] = A[i, j]; 
A[i, j] = c; 
} 
} 
//вывод нового массива 
for (i = 0; i < n; i++) 
{ 
for (j = 0; j < m; j++) 
{ 
Console.Write(A[i, j] + " "); 
} 
Console.WriteLine(); 
} 
Console.ReadKey(); 
} 
} 
}

Raw Text