The following code finds all square sub matrix of a square matrix:
#include <stdio.h>
int main() {
int mtrx_size = 3;
int mat[3][3] = {
{ 1, 2, 3},
{ 9,10,11},
{17,18,19},
};
//I took 3*3 matrix for example though It works for any square matrix
int i, j, k, l, m;
int sub_mtrx_size;
for(sub_mtrx_size = mtrx_size; sub_mtrx_size > 1 ; sub_mtrx_size--) {
m = mtrx_size - sub_mtrx_size + 1;
for (k = 0; k <m; k++) {
for (l = 0; l <m; l++) {
for (i = 0; i < sub_mtrx_size; i++) {
for (j = 0; j < sub_mtrx_size; j++) {
printf("%3d ", mat[i+k][j+k]);
}
printf("\n");
}
printf("\n");
}
}
}
return 0;
}
But I want to find all of the sub matrix of a matrix.