Основы 2D-массивов
Часть раздела Логика и управление потоком путешествия по C# на Coddy. Урок 1 из 66.
В C# зубчатый массив — это массив массивов, образующий сетку или матричную структуру. Это похоже на таблицу со строками и столбцами, где каждая ячейка может содержать значение. Зубчатые массивы полезны для представления данных, имеющих двумерную связь, таких как шахматная доска, схема рассадки или игра на основе сетки.
Вот как объявляется и инициализируется ступенчатый массив в C#:
data_type[][] arrayName = new dataType[numberOfRows][];dataType: Тип элементов, которые будет содержать массив (например, int, string и т. д.).
arrayName: Имя, которое вы даете массиву.
numberOfRows: Количество строк в массиве.
Затем каждую строку необходимо инициализировать отдельно:
arrayName[0] = new dataType[lengthOfFirstRow];
arrayName[1] = new dataType[lengthOfSecondRow];
// и так далее...Например, чтобы создать ступенчатый массив целых чисел с 3 строками, где каждая строка имеет 4 столбца, вы должны написать:
int[][] matrix = new int[3][];
matrix[0] = new int[4];
matrix[1] = new int[4];
matrix[2] = new int[4];Вы также можете инициализировать ступенчатый массив значениями напрямую:
int[][] matrix = new int[][] {
new int[] {1, 2, 3},
new int[] {4, 5, 6},
new int[] {7, 8, 9}
};Примечание: Эта платформа использует компилятор версии ниже C# 12. Более короткий синтаксис выражений коллекций, представленный в C# 12 (например, int[][] matrix = [[1, 2], [3, 4]];), здесь не поддерживается. Пожалуйста, используйте традиционный синтаксис инициализации new int[][] { ... }, показанный выше.
Задание
ЛегкоИнициализируйте зубчатый массив (jagged array) следующими значениями:
5, 7, 10, 24, 41
86, 13, 683, 64, 13
42, 46, 791, 111, 9
86, 88, 1845, 5, 15897
9, 1, 5, 5, 6Ваша задача — правильно инициализировать зубчатый массив этими точными значениями и обеспечить корректный вывод матрицы программой.
Примечание: Эта платформа использует компилятор версии ниже C# 12. Синтаксис выражений коллекций C# 12 (например, int[][] matrix = [[1, 2], [3, 4]];) не поддерживается. Используйте традиционный синтаксис инициализации:int[][] matrix = new int[][] { new int[] {1, 2}, new int[] {3, 4} };
Попробуйте сами
using System;
class Program
{
static void Main(string[] args)
{
int[][] matrix = {
// Напишите свой код здесь
};
// Выведите матрицу
int rows = matrix.Length;
for (int i = 0; i < rows; i++)
{
int cols = matrix[i].Length;
for (int j = 0; j < cols; j++)
{
Console.Write(matrix[i][j] + " ");
}
Console.WriteLine();
}
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Многомерные массивы
Основы 2D-массивовОбъявление и инициализация 2D-массивовДоступ к элементам 2D-массиваВложенные циклы с 2D-массивамиЗубчатые массивыОсновные операции с матрицамиПовторение — многомерные массивы4Методы управления потоком выполнения
Досрочный выходЗащитные условияОператоры перехода (goto)Break и ContinueУпрощение вложенных условных конструкций7Логические операторы: продвинутый уровень
Вычисление с коротким замыканиемУсловные логические операторыПриоритет операторовПовторение — продвинутые операторы2Продвинутое принятие решений
Множественные условияСложная логика BooleanСравнение If и SwitchВложенные конструкции SwitchПовторение — продвинутые решения5Обработка исключений
Основы Try-CatchТипы исключенийНесколько блоков CatchРабота с файламиБлок FinallyИспользование Using вместо Try-FinallyПользовательские исключенияПовторение — обработка ошибок3Улучшение циклов
Производительность цикловИтерация по сложным структурамКаждый тип циклаРефакторинг цикловПовторение — оптимизированные циклы6Обработка null
Основы ссылок на nullТипы значений, допускающие nullШаблоны проверки на nullЗащитное программированиеПовторение — безопасность при работе с nullПотренируйтесь самостоятельно: Онлайн-компилятор C#