#include #define MAX 50 //max int 50 void UcitajMatricu(int n, int matrica[MAX][MAX]){ int i, j; for(i = 0; i < n; i++){ for(j = 0; j < n; j++){ scanf("%d", &matrica[i][j]); } } } void StampajMatricu(int n, int matrica[MAX][MAX]){ int i, j; for(i = 0; i < n; i++){ for(j = 0; j < n; j++){ printf("%d ", matrica[i][j]); } printf("\n"); } } int ProveriGlavnuDijagonalu(int n, int matrica[MAX][MAX]){ int i, j; for(i = 0; i < n; i++){ for(j = 0; j < n; j++){ if(i == j && matrica[i][j] != 1) return 0; } } return 1; } int ProveriSporednuDijagonalu(int n, int matrica[MAX][MAX]){ int i, j; for(i = 0; i < n; i++){ for(j = 0; j < n; j++){ if(i == n - 1 - j && matrica[i][j] != 1) return 0; } } return 1; } void ProveriX(int n, int matrica[MAX][MAX]){ if(ProveriGlavnuDijagonalu(n, matrica) && ProveriSporednuDijagonalu(n, matrica)) printf("Moze se nacrtati X\n"); else{ printf("Ne moze se nacrtati X: "); if(!ProveriGlavnuDijagonalu(n, matrica) && !ProveriSporednuDijagonalu(n, matrica)) printf("problem u glavnoj i sporednoj dijagonali"); else if(!ProveriGlavnuDijagonalu(n, matrica)) printf("problem u glavnoj dijagonali"); else if(!ProveriSporednuDijagonalu(n, matrica)) printf("problem u sporednoj dijagonali "); printf("\n"); } } void ObradiMatricu(int n, int matrica[MAX][MAX]){ int i, j; for(i = 0; i < n; i++){ for(j = 0; j < n; j++){ if(matrica[i][j] == 2) matrica[i][j] = 1; } } } int NajveciKvadrat(int n, int matrica[MAX][MAX]){ int i, j, d = 0, maxD = 0, ind = 0; for(i = 0; i < n; i++){ for(j = 0; j < n; j++){ int k, l; ind = 1; while(ind){ d++; for(k = 0; k <= d; k++){ for(l = 0; l <= d; l++){ if(matrica[i + k][j + l] != 1){ ind = 0; } } } } if(d > maxD) maxD = d; d = 0; } } return maxD; } main(){ int n, mat[MAX][MAX]; scanf("%d", &n); UcitajMatricu(n, mat); printf("Pocetno stanje displeja:\n"); StampajMatricu(n, mat); printf("Provera X pre obrade:\n"); ProveriX(n, mat); ObradiMatricu(n, mat); printf("Stanje nakon obrade:\n"); StampajMatricu(n, mat); printf("Provera X nakon obrade:\n"); ProveriX(n, mat); int nk = NajveciKvadrat(n, mat); printf("Najveci kvadrat ispravnih piksela je dimenzije %d x %d", nk, nk); return 0; }