Загрузка данных


#include <iostream>

using namespace std;

int main() {
    setlocale(LC_ALL, "Russian");

    int n;
    cout << "Введите размерность квадратной матрицы n (n >= 3): ";
    cin >> n;

    if (n < 3) {
        cout << "Ошибка: для матрицы (n-2)x(n-2) размер n должен быть не меньше 3!" << endl;
        return 1;
    }

    const int MAX = 50;
    int a[MAX][MAX];

    cout << "Введите элементы матрицы " << n << "x" << n << ":" << endl;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            // Доступ к адресу ячейки памяти через указатель
            cin >> *(*(a + i) + j);
        }
    }

    cout << "\nИсходная матрица:\n";
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cout << *(*(a + i) + j) << "\t";
        }
        cout << endl;
    }

    // Начальный элемент подматрицы через разыменование указателя
    int sum = 0;
    int max_val = *(*(a + 1) + 1);

    for (int i = 1; i < n - 1; i++) {
        for (int j = 1; j < n - 1; j++) {
            int current = *(*(a + i) + j); // Извлечение значения по адресу
            sum += current;
            if (current > max_val) {
                max_val = current;
            }
        }
    }

    cout << "\nРезультаты для внутренней подматрицы (" << n - 2 << "x" << n - 2 << "):" << endl;
    cout << "Сумма элементов: " << sum << endl;
    cout << "Максимальный элемент: " << max_val << endl;

    system("pause");
    return 0;
}