Ir ao conteúdo
  • Cadastre-se

Calcular vetores em uma matriz


gprilopes
Ir à solução Resolvido por CiroboyBR,

Posts recomendados

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");
}

Link para o comentário
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;         
    }

Link para o comentário
Compartilhar em outros sites

  • Solução

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
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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