Ir ao conteúdo
  • Cadastre-se

C Valores adjacentes em matriz


Estudante0123

Posts recomendados

Ola, tenho uma matriz bidemensional, e quero saber quantos conjuntos de elementos adjacentes (em cima, baixo e lados) iguais a zero eu tenho nela. Exe

1 2 3 0 0 0

4 5 6 0 1 1

1 3 4 5 6 7

0 0 1 1 2 3

Nesse caso tenho dois conjuntos. Estou com dificuldades em pensar na funcao para fazer isso, pensei em faze la ler a matriz e quando encontrar um 0 entrar em uma condicao, mas não tenho muita mais nocao de como prosseguir

 

Link para o comentário
Compartilhar em outros sites

você pode imprimir ela e ver onde ficou cada respectivo numero do vetor e depois comparalos ver se sao iguais. Alguns so vão levar 2 ou 3 comparacoes lado e embaixo sao os famosos numeros de cantos e os do meio vão ter maxima 4 comparacoes emcima embaixo e lados faria isso com alguns ifs else nao manjo tanto de for pra isso

Link para o comentário
Compartilhar em outros sites

Pensei em fazer uma busca pela matriz, quando encontrar um 0 ir verificando aos lados ate quando tem o 0. Depois voltar e ao primeiro zero encontrado e ir verificando em baixo.

 if (m[i][j] == 0){  //encontrou um 0
                achou++;
            while ((j+1 < n_cols && m[i][j+1] == 0) || (i+1 < n_rows && m[i+1][j] == 0)){ //se houver 0 adjacente

                    while (m[i][j+1] == 0 && j+1 < n_rows){ //verificando 0 ao lado
                        achou ++;
                        printf ("Primerio while m[%d] [%d]\n", i, j);
                        i++;
                        int aux_j = j;
                        while (aux_j < n_cols && m[i][aux_j ] == 0) {
                        achou ++;
                        printf ("Segundo while m[%d] [%d]\n", i, aux_j);
                        aux_j++;

                    } //while

                    } //while


            } // while 1 adjacente
        } //if encontrou 1

Mas essa linha ainda tem muitos furos. Um esboço do que consegui, onde os printfs são apenas para me localizar. Nesse caso, estou tentando primeiro fazer a logica de reconhecer os conjuntos

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...