Ir ao conteúdo

C Matrizes e Vetores - percorrendo e exibindo elementos


Ir à solução Resolvido por devair1010,

Posts recomendados

Postado

Estou tentando aprender como utilizar matrizes e vetores, porém, em um dos meus códigos eu gostaria de solicitar um numero para o usuário e verificar quantas ocorrências há ao percorrer o vetor e após isso informar a linha e a coluna de cada ocorrência, isso se existir logicamente. O primeiro passo eu consegui realizar, porém o segundo está mais complicado, eu tentei mas aparece apenas linha[0] coluna[12] e apenas uma vez, mesmo tendo mais ocorrências. Procurei em muitos e muitos lugares mas não achei uma solução adequada pra esse código, gostaria que alguém pudesse me ajudar, para conseguir avançar um pouco mais nesse assunto. Segue abaixo o código: 

 

#include<stdio.h>
#include<stdlib.h>
#include<locale.h>

int main()
{
    setlocale(LC_ALL,"Portuguese");
    int m[3][4];
    int m1[3][4];
    int l,c, negt = 0, elem, num = 0, cont;
     printf("Preenchendo a matriz\n\n");
    // PREENCHENDO O VETOR
    for(l = 0;l < 3; l++)
    {
        for(c = 0;c < 4; c++)
        {
            printf("Digite a posição [%d][%d] = ", l ,c);
            scanf("%d",&m[l][c]);
        }
    }
     printf("\n\nExibindo a matriz\n\n");
    // exibindo o vetor
        for(l = 0;l < 3; l++)
    {
        for(c = 0;c < 4 ; c++)
        {
            printf("m[%d][%d]= %d\t", l ,c, m[l][c]);
        }
        printf("\n");
   }
   // somando vetores
   printf("\n\nSomando os elementos das matrizes\n\n");
   int soma = 0;
       for(l = 0;l < 3; l++)
    {
        for(c = 0;c < 4; c++)
        {
            soma = soma + m[l][c];
        }

    }
    printf("\nSoma dos elemento: %d", soma);
    printf("\n\nContar e exibir elementos negativos na matriz\n\n");
    // exibindo o vetor
        for(l = 0;l < 3; l++)
    {
        for(c = 0;c < 4 ; c++)
        {
        if(m[l][c] < 0)
        {
            negt++;
        }
        }
   }
   printf("ELEMENTOS NEGATIVOS = %d", negt);
   printf("\nNumero contido na matriz!!\n\n");
    // exibindo o vetor
    printf("Digite um valor para ser encontrado na matriz: ");
    scanf("%d",&elem);
    for(l = 0;l < 3; l++)
    {
        for(c = 0;c < 4 ; c++)
        {
            if(elem == m[l][c])
            {
                num = 1;
                m1[l][c] = m[l][c];
                cont++;

            }
        }

   }
   if(num == 1)
           {
               printf("\nnumeros encontrados = %d", num);
               printf("\nm[%d][%d]=",m1[l][c]);
        }
        else
        {
           printf("Número não encontrado!");
        }
}
 

 

  • Obrigado 1
  • Solução
Postado

@Guga04    no seu código faltou armazenar o número  na mesma linha e coluna na matriz  m1 ,  e modificando essa parte poderia ser assim  :

#include<stdio.h>
#include<stdlib.h>
#include<locale.h>

int main()
{
    setlocale(LC_ALL,"Portuguese");
    int m[3][4];
    int m1[3][4] = {0};  // inicializa a matriz com todos os elemntos
                         // com valor zero
    int l,c, j,i,negt = 0, elem, cont = 0;
     printf("Preenchendo a matriz\n\n");
    // PREENCHENDO O VETOR
    for(l = 0;l < 3; l++)
    {
        for(c = 0;c < 4; c++)
        {
            printf("Digite a posição [%d][%d] = ", l ,c);
            scanf("%d",&m[l][c]);
        }
    }
     printf("\n\nExibindo a matriz\n\n");
    // exibindo o vetor
    for(l = 0;l < 3; l++)
    {
        for(c = 0;c < 4 ; c++)
        {
            printf("m[%d][%d]= %d\t", l ,c, m[l][c]);
        }
        printf("\n");
    }
    // somando vetores
    printf("\n\nSomando os elementos das matrizes\n\n");
    int soma = 0;
    for(l = 0;l < 3; l++)
    {
        for(c = 0;c < 4; c++)
        {
            soma = soma + m[l][c];
        }
    }
    printf("\nSoma dos elemento: %d", soma);
    printf("\n\nContar e exibir elementos negativos na matriz\n\n");
    // exibindo o vetor
    for(l = 0;l < 3; l++)
    {
        for(c = 0;c < 4 ; c++)
        {
            if(m[l][c] < 0)
            {
                negt++;
            }
        }
    }
    printf("ELEMENTOS NEGATIVOS = %d\n", negt);
    printf("Numero contido na matriz!!\n\n");
    // exibindo o vetor
    printf("Digite um valor para ser encontrado na matriz: ");
    scanf("%d",&elem);
    for(l = 0; l < 3; l++)
    {
        for(c = 0; c < 4 ; c++)
        {
            if(elem == m[l][c])
            {
                m1[l][c] = m[l][c];
                cont++;
            }
        }
    }
    if( cont )  /// na linguagem c valor zero eh False e qq outo valor eh True
    {
        printf("\nnumero %d Encontrado %d Vez",elem,cont );
        if( cont ) printf("es");printf("\n");
        for(i=0; i<3; i++)
        {
            for(j=0; j<4; j++)
            {
                if(m1[i][j] != 0 )
                {
                    printf("Numero %d na Linha %d e Coluna %d\n",m1[i][j],i,j );
                }
            }
        }
    }
    else
    {
        printf("Número não encontrado!");
    }
    return 0;
}

 

  • Obrigado 1

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