int** squareMatrix(int** a, int m, int n, int p) { int posRow = -1, posColumn = -1, size = 0; int temp[4]; for (int i = 0; i < m; i++) for (int j = 0; j < n; j++) { if (a[i][j] == p) { temp[0] = m - 1 - j; temp[1] = j; temp[2] = m - 1 - i; temp[3] = i; int min = temp[0]; for (int z = 1; z < 4; z++) { if (temp[z] > min) min = temp[z]; } if (min > size) { posRow = i; posColumn = j; size = min; } } } int** b = new int* [size*2 + 1]; for (int i = 0; i < size * 2 + 1; i++) b[i] = new int [size * 2 + 1]; for (int i = posRow - size; i <= posRow + size; i++) { for (int j = posColumn - size; j <= posColumn + size; j++) { b[i][j] = a[i][j]; } } return b; }