Чтобы дополнить двумерную матрицу нулями по краям, вам понадобится создать новую матрицу, которая будет на единицу больше по каждому измерению, чем исходная матрица. Затем скопируйте все элементы из исходной матрицы в новую матрицу. Наконец, заполните краевые ячейки новой матрицы нулями.
Для решения этой задачи вам потребуется использовать вложенные циклы для перебора всех элементов исходной матрицы и копирования их в новую матрицу. Для заполнения краевых ячеек новой матрицы нулями, вам потребуется использовать условные операторы, чтобы определить, когда заполнять краевые ячейки.
Ниже представлен пример кода на языке C++, который дополняет двумерную матрицу нулями по краям:
#include <iostream> #include <vector> // Функция для дополнения матрицы нулями по краям std::vector<std::vector<int>> addZerosToMatrix(const std::vector<std::vector<int>>& matrix) { // Получаем размеры исходной матрицы int rows = matrix.size(); int cols = matrix[0].size(); // Создаем новую матрицу, размеры которой на 1 больше исходной матрицы std::vector<std::vector<int>> newMatrix(rows + 2, std::vector<int>(cols + 2, 0)); // Копируем все элементы из исходной матрицы в новую матрицу for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { newMatrix[i + 1][j + 1] = matrix[i][j]; } } // Заполняем краевые ячейки новой матрицы нулями for (int i = 0; i < rows + 2; i++) { for (int j = 0; j < cols + 2; j++) { if (i == 0 || j == 0 || i == rows + 1 || j == cols + 1) { newMatrix[i][j] = 0; } } } return newMatrix; } int main() { // Исходная матрица std::vector<std::vector<int>> matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; // Дополняем матрицу нулями по краям std::vector<std::vector<int>> newMatrix = addZerosToMatrix(matrix); // Выводим новую матрицу на экран for (const auto& row : newMatrix) { for (int element : row) { std::cout << element << " "; } std::cout << std::endl; } return 0; }
В данном примере мы создаем функцию addZerosToMatrix
, которая принимает исходную матрицу в качестве аргумента и возвращает новую матрицу с дополненными нулями по краям. Затем в функции main
мы создаем исходную матрицу, используя вложенные векторы, и дополняем ее нулями с помощью функции addZerosToMatrix
. Наконец, мы выводим новую матрицу на экран с помощью циклов и стандартного вывода.