#include void UcitajMat(int mat[30][30], int m, int n) { int i, j; for (i = 0; i < m; i++) for (j = 0; j < n; j++) scanf("%d", &mat[i][j]); } void StampajMat(int mat[30][30], int m, int n) { int i, j; for (i = 0; i < m; i++) { for (j = 0; j < n; j++) printf("%d ", mat[i][j]); printf("\n"); } } int BrojNeNula(int A[30], int n, int k) { int broj = 0; int i; for (i = k; i < n; i++) if (A[i] != 0) broj++; return broj; } int ProveriPolje(int mat[30][30], int i, int j) { if (mat[i][j] == 1) return 1; else return 0; } void PrebrojMine(int mat[30][30], int m, int n, int mine[30][30]) { int i, j, broj, di, dj, x, y; for (i = 0; i < m; i++) { for (j = 0; j < n; j++) { broj = 0; for (di = -1; di <= 1; di++) { for (dj = -1; dj <= 1; dj++) { x = i + di; y = j + dj; if (x >=0 && x < m && y >= 0 && y < n) if (ProveriPolje(mat, x, y) == 1) broj++; } } mine[i][j] = broj; } } } main() { int m, n; int mat[30][30]; int rasporedMina[30][30]; scanf("%d %d", &m, &n); UcitajMat(mat, m, n); printf("***********\n"); StampajMat(mat, m, n); printf("***********\n"); printf("%d\n", BrojNeNula(mat[m - 1], n, (n - 1) / 2)); printf("***********\n"); if (mat[(m - 1) / 2][(n - 1) / 2] == 1) printf("Da - mina se nalazi u\nsredini matrice\n"); else printf("Ne - mina se ne nalazi u\nsredini matrice\n"); printf("***********\n"); PrebrojMine(mat, m, n, rasporedMina); StampajMat(rasporedMina, m, n); printf("***********\n"); int brojNeNulaVrsta, brojNeNulaKolona; int kolona[30], i; int x, y; scanf("%d %d", &x, &y); while (ProveriPolje(mat, x, y) != 1) { brojNeNulaVrsta = BrojNeNula(rasporedMina[x], n, y+1);//da bi bilo kao u test primeru, treba proslediti y+1 da se racuna od te pozicije for (i = 0; i < m; i++) kolona[i] = rasporedMina[i][y]; brojNeNulaKolona = BrojNeNula(kolona, m, x+1);//da bi bilo kao u test primeru, treba proslediti x+1 da se racuna od te pozicije printf("%d %d\n", brojNeNulaVrsta, brojNeNulaKolona); scanf("%d %d", &x, &y); } printf("Mina! Kraj igre!\n"); }