Дана целочисленная матрица размера N×M. Упорядочить по возрастанию элементы столбца, содержащего минимальный элемент матрицы, и по убыванию элементы столбца, содержащего максимальный элемент матрицы. Если минимум и максимум находятся в одном столбце, то ничего не делать. Полученную матрицу вывести на экран. C#
Ответы
Ответ дал:
0
using System;
class Program
static void Main()
{
int n = 5;
int m = 10;
var a = new Int32[n, m];
int imin = 0;
int imax = 0;
int max = 0;
int min = 100;
var random = new Random();
for (var i = 0; i < a.GetLength(0); i++, Console.WriteLine())
for (var j = 0; j < a.GetLength(1); j++)
{
a[i, j] = random.Next(100);
if (max < a[i, j])
{
max = a[i, j];
imax = j;
}
if (min > a[i, j])
{
min = a[i, j];
imin = j;
}
Console.Write("{0,4}", a[i, j]);
}
if (imin == imax)
Console.WriteLine("Элементы находятся в одном столбце");
else
{
Console.WriteLine();
for (int i = 0; i < a.GetLength(0) -1; i++)
for (int j = i + 1; j < a.GetLength(0); j++)
if (a[i,imin] > a[j, imin])
{
var temp = a[i, imin];
a[i, imin] = a[j, imin];
a[j, imin] = temp;
}
for (int i = a.GetLength(0) - 2; i >=0 ; i--)
for (int j = i; j < a.GetLength(0)-1; j++)
if (a[j, imax] < a[j+1, imax])
{
var temp = a[i, imin];
a[j, imax] = a[j+1, imax];
a[j + 1, imax] = temp;
}
for (var i = 0; i < a.GetLength(0); i++, Console.WriteLine())
for (var j = 0; j < a.GetLength(1); j++)
Console.Write("{0,4}", a[i, j]);
}
Console.Read();
}
}
class Program
static void Main()
{
int n = 5;
int m = 10;
var a = new Int32[n, m];
int imin = 0;
int imax = 0;
int max = 0;
int min = 100;
var random = new Random();
for (var i = 0; i < a.GetLength(0); i++, Console.WriteLine())
for (var j = 0; j < a.GetLength(1); j++)
{
a[i, j] = random.Next(100);
if (max < a[i, j])
{
max = a[i, j];
imax = j;
}
if (min > a[i, j])
{
min = a[i, j];
imin = j;
}
Console.Write("{0,4}", a[i, j]);
}
if (imin == imax)
Console.WriteLine("Элементы находятся в одном столбце");
else
{
Console.WriteLine();
for (int i = 0; i < a.GetLength(0) -1; i++)
for (int j = i + 1; j < a.GetLength(0); j++)
if (a[i,imin] > a[j, imin])
{
var temp = a[i, imin];
a[i, imin] = a[j, imin];
a[j, imin] = temp;
}
for (int i = a.GetLength(0) - 2; i >=0 ; i--)
for (int j = i; j < a.GetLength(0)-1; j++)
if (a[j, imax] < a[j+1, imax])
{
var temp = a[i, imin];
a[j, imax] = a[j+1, imax];
a[j + 1, imax] = temp;
}
for (var i = 0; i < a.GetLength(0); i++, Console.WriteLine())
for (var j = 0; j < a.GetLength(1); j++)
Console.Write("{0,4}", a[i, j]);
}
Console.Read();
}
}
Вас заинтересует
1 год назад
1 год назад
2 года назад
2 года назад
8 лет назад
8 лет назад