Ir ao conteúdo
  • Cadastre-se
gprilopes

RESOLVIDO Calcular vetores em uma matriz

Recommended Posts

Preciso ler 4 vetores A,B,C,D de 2 posições, e contruir uma matriz E do tipo 4 x 2

 

A primeira linha da matriz deve ter o dobro dos valores do vetor A

A segunda linha da matriz deve ter o triplo dos valores do vetor B

A terceira linha da matriz deve ter o quádruplo dos valores do vetor C

A quarta linha da matriz deve ter o quadrados dos valores do vetor D

 

Isso apresentados na matriz e

 

Ex:

 

VETOR A = 2 - 4

VETOR B = 1 - 2

VETOR C = 2 - 3

VETOR D = 2 - 2

 

MATRIZ

 

4 - 8

3 - 6

8 - 12

4 - 4

 

MEU CÓDIGO ESTA ASSIM:

 

#include <stdio.h>
#include <stdlib.h>
#define TAM 2
#define LIN 4
#define COL 2


main ()

{
    //VETOR
    int vet_a [TAM];
    int vet_b [TAM];
    int vet_c [TAM];
    int vet_d [TAM];
    int mat_e [LIN][COL];
    int i;
    int l,c;
    
    // LEITURA DOS VETORES
    printf ("Leia o vetor A\n");
    
    for ( i = 0 ; i < TAM ; i++ )
    {
        
        scanf ("%d",&vet_a [ i ]);
        
    }
    
    printf ("Leia o vetor B\n");
    
    for ( i = 0 ; i < TAM ; i++ )
    {
        
        scanf ("%d",&vet_b [ i ]);
        
    }
    printf ("Leia o vetor C\n");
    
    for ( i = 0 ; i < TAM ; i++ )
    {
        
        scanf ("%d",&vet_c [ i ]);
        
    }
    printf ("Leia o vetor D\n");
    
    for ( i = 0 ; i < TAM ; i++ )
    {
        
        scanf ("%d",&vet_d [ i ]);
        
    }
    
    // CONTA
    for ( i = 0 ; i < TAM ; i++ )
    {
        
        mat_e [l][c] = vet_a + vet_a;
        
        mat_e [l][c]++;    
        
    }
    
    for ( i = 0 ; i < TAM ; i++ )
    {
        
        mat_e [l][c] = vet_b + vet_b + vet_b;
        
        mat_e [l][c]++;            
        
    }
    
    for ( i = 0 ; i < TAM ; i++ )
    {
        
        mat_e [l][c] = vet_c  + vet_c + vet_c + vet_c;
        
        mat_e [l][c]++;        
        
    }
    
    for ( i = 0 ; i < TAM ; i++ )
    {
        
        mat_e [l][c] = vet_d * vet_d;
        
        mat_e [l][c]++;        
        
    }
    
    // IMPRESSÃO NA MATRIZ   
    for (l=0;l<LIN;l++)
    for (c=0;c<COL;c++){
        
        printf ("Os valores são linha %d coluna %d =",mat_e [LIN][COL]);
                
    }
    
    system ("pause");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites


for ( i = 0 ; i < TAM ; i++ ) {

mat_e [0] = vet_a * 2; //dobro

mat_e [1] = vet_b * 3; //triplo

mat_e [2] = vet_c * 4; //quadrupplo

mat_e [3] = vet_d * vet_d; //quadrado

}

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por que você usou o contador i

 

for ( i = 0 ; i < TAM ; i++ )
    {   
        mat_e [0] = vet_a * 2;
        mat_e [1] = vet_b * 3;
        mat_e [2] = vet_c * 4;
        mat_e [3] = vet_d * vet_d;         
    }

 

ao invés de usar outros contadores como assim?

 

for ( i = 0 ; i < TAM ; i++ )
    {   
        mat_e [l][c] = vet_a * 2;
        mat_e [l][c] = vet_b * 3;
        mat_e [l][c] = vet_c * 4;
        mat_e [l][c] = vet_d * vet_d;         
    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por que você usou o contador i

 

for ( i = 0 ; i < TAM ; i++ )

    {   

        mat_e [0] = vet_a * 2;

        mat_e [1] = vet_b * 3;

        mat_e [2] = vet_c * 4;

        mat_e [3] = vet_d * vet_d;         

    }

 

ao invés de usar outros contadores como assim?

 

for ( i = 0 ; i < TAM ; i++ )

    {   

        mat_e [l][c] = vet_a * 2;

        mat_e [l][c] = vet_b * 3;

        mat_e [l][c] = vet_c * 4;

        mat_e [l][c] = vet_d * vet_d;         

    }

Cara, eu já te expliquei isso em outro post, talvez você tenha achado que eu utilizo o mesmo contados em coisas diferentes só pra avacalhar, mas não, eu uso porque na maioria dos casos é necessariamente a melhor escolha.

Bem, a matriz que você está mexendo é na verdade 4 vetores, como?

mat[0]..... /linha 1mat[1]..... /linha 2mat[2]..... /linha 3mat[3]..... /linha 4

Se você olhar bem para uma matriz, vai ver que cada linha dela é um vetor. O segundo [ ] da matriz é a posição do vetor

mat[0][0]..... /linha 1  e coluna 1mat[1][1]..... /linha 2 e coluna 2mat[2][0]..... /linha 3 e coluna 1mat[3][3]..... /linha 4 e coluna 4

Ao fazer isso eu vou acessar a mesma posição dos 2 vetores ao mesmo tempo.

 

i = 2  // posição vai ser a 2mat[0][i]..... /linha 1 e posição 2 do vetorvet[i]......// posição 2 do vetor

Respondendo a sua pergunta, usei o mesmo contador porque não tem... Repito, não há necessidade..... Repito novamente Houston, não há necessidade de se usar mais do que 1 contador para fazer aquilo. Pode usar? Pode sim, mas... Não há necessidade.

Bem, é isso. Espero que dessa vez me dê ouvidos. Um abrass e bons estudos.

  • Curtir 1

Compartilhar este post


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





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×