#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;
}