Как дополнить двумерную матрицу нулями по краям?

Чтобы дополнить двумерную матрицу нулями по краям, вам понадобится создать новую матрицу, которая будет на единицу больше по каждому измерению, чем исходная матрица. Затем скопируйте все элементы из исходной матрицы в новую матрицу. Наконец, заполните краевые ячейки новой матрицы нулями.

Для решения этой задачи вам потребуется использовать вложенные циклы для перебора всех элементов исходной матрицы и копирования их в новую матрицу. Для заполнения краевых ячеек новой матрицы нулями, вам потребуется использовать условные операторы, чтобы определить, когда заполнять краевые ячейки.

Ниже представлен пример кода на языке 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. Наконец, мы выводим новую матрицу на экран с помощью циклов и стандартного вывода.