Solução por Rogério Júnior
Após lermos o número de cédulas do tabuleiro, lemos quantas minas há em cada uma delas e salvamos no vetor tab. Feito isso, para cada posição i do tabuleiro, vamos imprimir a quantidade de minas em seus arredores, ou seja, quantas minas há nos vizinhos esquerdo e direito e na própria posição. Para isso, adicionaremos uma unidade no valor a ser impresso para cada uma dessas posições (i-1, i, i+1) que tem uma mina. Para melhor entendimento, segue o código do nosso leitor Roger Benet, com alguns comentários meus:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <cstdio> | |
int tab[60]; | |
int main() { | |
int n, i, k; // declaro os inteiros n, i, e k | |
scanf("%d", &n); // leio o valor de n | |
for(i=1; i<=n; i++) scanf("%d", &tab[i]); // leio o tabuleiro | |
for(i = 1; i <= n; i++){ // para cada casa do tabuleiro | |
k = 0; // o número k de bombas a seu redor começa com zero | |
// adiciono 1 para cada mina que há na casa ou em seus vizinhos | |
if(tab[i-1] == 1) k++; | |
if(tab[i] == 1) k++; | |
if(tab[i+1] == 1) k++; | |
// depois imprimo o valor de k, seguido da quebra de linha | |
printf("%d\n", k); | |
} | |
return 0; | |
} |