Ir ao conteúdo
  • Cadastre-se

C Valores adjacentes em matriz


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 post
Compartilhar em outros sites

Boa Noite.

Como seu cérebro resolve esse problema? Faça a narrativa da solução sem o uso da linguagem. Caso isso ajude mostre sua primeira tentativa após a simulação mental do teu algoritmo para o teu programa.

Link para o post
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 post
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 post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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
  • Moderadores deste setor

  • Quem está navegando aqui   0 membros estão online

    Nenhum usuário registrado visualizando esta página.



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...

GRÁTIS: ebook Redes Wi-Fi

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!