Ir para conteúdo
Fórum Script Brasil
  • 0

Percorrer as ascoordenadas adjacentes?


renan123

Pergunta

tenho que fazer um programa que recebe uma coordenada do usuario, referente a uma matriz, e o programa percorre as 8 coordenadas adjacentes e diz quantos numeros 1 estào ao seu redor.

fiz este programa mas nào esta funcionando direito, alguém pode melhora-lo ou talvez fazer outro que funcione??

Aqui esta o programa:

 #include <stdio.h> 

        int i=0,j=0,matriz[3][3],m=0;
    
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            matriz[j]=0;
        }
    }
    
        matriz[0][0]=1;matriz[1][1]=1;matriz[2][2]=1;

    printf("Digite coordenada desejada");
    scanf("%d",&i);
    scanf("%d",&j);

    if(matriz[i+1][j]==1){
        m++;
    }
    
    if(matriz[i-1][j]==1 ){
        m++;
    }
    if(matriz[j+1]==1 ){
        m++;
    }
    if(matriz[j-1]==1){
        m++;
    }
    if(matriz[i+1][j+1]==1 ){
        m++;
    }
    if(matriz[i-1][j-1]==1 ){
        m++;
    }
    if(matriz[i-1][j+1]==1){
        m++;
    }
    if(matriz[i+1][j-1]==1 ){
        m++;
    }
        
    printf("%d\n",m);
}

Editado por renan123
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Ao invés de fazer todos esses if's, tu poderia fazer dois laços for do tipo:

for(i=-1; i<=1; i++) {
      for(j=-1; j<=1; j++){
            //Se o elemento atual não for o da coordenada fornecida pelo usuario e o seu valor for 1, soma-se uma unidade ao contador
            if ( ((x+i!=x) || (y+j!=y)) && (matriz[x+i][y+j] == 1)) contaUm++;
      }
}

Tu só tem que tomar mais alguns cuidados em relação aos limites da matriz. Por exemplo, tu não pode tentar pegar um elemento abaixo do indice [0] nem acima do indice maximo da matriz

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...