Другие языки программирования и технологии
Помогите с Массивами в С#
Задан двумерный массив чисел (используйте генератор случайных чисел). Отсортируйте каждую нечетную строку по возрастанию, а каждую четную – по убыванию, после чего выведите значение k-го столбца.
using System;
using System.Text;
class Program
{
static string BuildArrayString(int[][] array, int numLength)
{
var result = new StringBuilder();
int length = array.GetLength(0);
for (int i = 0; i < length; i++)
{
foreach (var num in array[i])
result.Append(num.ToString().PadLeft(numLength));
result.AppendLine();
}
return result.ToString();
}
static void Main()
{
const int arrayLength = 20;
const int maxNumber = 100;
const int numLength = 3;
var random = new Random();
var array = new int[arrayLength][];
for (int i = 0; i < arrayLength; i++)
{
array[i] = new int[arrayLength];
for (int k = 0; k < arrayLength; k++)
array[i][k] = random.Next(maxNumber);
}
Console.WriteLine(BuildArrayString(array, numLength));
Console.Write("Нажмите любую клавишу для сортировки...");
Console.ReadKey(true);
Console.SetCursorPosition(0, 0);
for (int i = 0; i < arrayLength; i++)
{
Array.Sort(array[i]);
if (i % 2 == 1)
Array.Reverse(array[i]);
}
Console.WriteLine(BuildArrayString(array, numLength));
Console.Write($"Укажите номер столбца для вывода (с 1 по {arrayLength}): ");
int numCollumn;
if (int.TryParse(Console.ReadLine(), out numCollumn) && numCollumn > 0 && numCollumn <= arrayLength)
{
numCollumn--;
Console.Write("Результат: ");
for (int i = 0; i < arrayLength; i++)
Console.Write(array[i][numCollumn].ToString().PadLeft(numLength));
Console.WriteLine();
}
else
Console.WriteLine("Указано недопустимое значение!");
Console.WriteLine();
Console.Write("Нажмите любую клавишу для выхода...");
Console.ReadKey(true);
}
}
using System.Text;
class Program
{
static string BuildArrayString(int[][] array, int numLength)
{
var result = new StringBuilder();
int length = array.GetLength(0);
for (int i = 0; i < length; i++)
{
foreach (var num in array[i])
result.Append(num.ToString().PadLeft(numLength));
result.AppendLine();
}
return result.ToString();
}
static void Main()
{
const int arrayLength = 20;
const int maxNumber = 100;
const int numLength = 3;
var random = new Random();
var array = new int[arrayLength][];
for (int i = 0; i < arrayLength; i++)
{
array[i] = new int[arrayLength];
for (int k = 0; k < arrayLength; k++)
array[i][k] = random.Next(maxNumber);
}
Console.WriteLine(BuildArrayString(array, numLength));
Console.Write("Нажмите любую клавишу для сортировки...");
Console.ReadKey(true);
Console.SetCursorPosition(0, 0);
for (int i = 0; i < arrayLength; i++)
{
Array.Sort(array[i]);
if (i % 2 == 1)
Array.Reverse(array[i]);
}
Console.WriteLine(BuildArrayString(array, numLength));
Console.Write($"Укажите номер столбца для вывода (с 1 по {arrayLength}): ");
int numCollumn;
if (int.TryParse(Console.ReadLine(), out numCollumn) && numCollumn > 0 && numCollumn <= arrayLength)
{
numCollumn--;
Console.Write("Результат: ");
for (int i = 0; i < arrayLength; i++)
Console.Write(array[i][numCollumn].ToString().PadLeft(numLength));
Console.WriteLine();
}
else
Console.WriteLine("Указано недопустимое значение!");
Console.WriteLine();
Console.Write("Нажмите любую клавишу для выхода...");
Console.ReadKey(true);
}
}
Jahongir Beknazarov
Спасибо, но очень большой код, можно его сделать короче?
Николай Смирнов
можно и короче... а ты сможешь объяснить более короткий код?
var arr = new int[N][];
var rand = new Random();
for (int i = 0; i < N; i++) { arr[i] = new int[M]; for (int j = 0; j < M; j++) arr[i][j] = rand.Next(100); }
for (int i = 0; i < N; i++) Array.Sort(arr[i], (x, y) => ((i & 1) == 0) ? y - x : x - y);
for (int i = 0; i < N; i++) Console.WriteLine(arr[i][k]);
var rand = new Random();
for (int i = 0; i < N; i++) { arr[i] = new int[M]; for (int j = 0; j < M; j++) arr[i][j] = rand.Next(100); }
for (int i = 0; i < N; i++) Array.Sort(arr[i], (x, y) => ((i & 1) == 0) ? y - x : x - y);
for (int i = 0; i < N; i++) Console.WriteLine(arr[i][k]);
Jahongir Beknazarov
К сожалению, код не сработал
Пустое окно
Пустое окно
Похожие вопросы
- Плиз помогите!!! В массиве А размерностью nxm Найти сумму и количество всех элементов массива.
- Помогите с массивами! Найти и вывести на экран сумму нечётных элементов массива и количество отрицательных.
- Помогите с массивом и сортировкой методом пузырька в языке Си! Прогу надо сдать в пятницу срочно, не знаю как начать!
- Нужна помощь, Помогите перебрать массив и нули перенести в конец С++
- Помогите с массивом
- Помогите с массивом
- помогите? Дан массив целых чисел (n=15),
- Помогите Задан массив Р(N).Переписать все его элементы,за исключением максимального и минимального в массив D.(язык C++)
- Помогите с массивами в си++
- Помогите :) Дан массив из n целых чисел. Найти количество встречающихся равных чисел.