Ir ao conteúdo

Posts recomendados

Postado

Boa tarde, estou tendo um problema na resolução desse exercicio:

Faça um programa em C que lê uma matriz M[6,6] e um valor A e multiplica a matriz M pelo valor A e
coloca os valores da matriz multiplicados por A em um vetor V[36] e escreve no final o vetor V.

 

#include <stdio.h>

 

#define lin 3

#define col 3

#define tam 18

 

int main(){

 

int M[lin][col], i, j, A, mul, V[tam], k;

 

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

for(j = 0; j < col; j++){

printf("Informe os valores da matriz M[%d][%d]\n", i, j);

scanf("%d", &M[i][j]);

}

 

  

}

printf("\n");

 

printf("Informe o valor de A\n");

scanf("%d", &A);

 

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

for(j = 0; j < col; j++){

 

V[k] = M[i][j] * A;

}

}

 

printf("\nO vetor V eh:\n");

for(k = 0; k < tam; k++){

printf("%d\n", V[k]);

}

return 0;

}

image.png.1e2691e9b54703e39c5f58450c10e071.png

  • Obrigado 1
Postado

@sthefanes245

7 minutos atrás, sthefanes245 disse:

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

for(j = 0; j < col; j++){

 

V[k] = M[i][j] * A;

}

}

Você se esqueceu de incrementar o valor de k, para acessar as demais posições do vetor.

Antes de tudo, inicialize o valor de k:

int k = 0;
// ...
V[k++] = M[i][j] * A;

Aliás:

9 minutos atrás, sthefanes245 disse:

#define lin 3

#define col 3

#define tam 18

3*3 = 9, a matriz tem 9 elementos, não 18.

#define lin 3
#define col 3
#define tam (lin*col)
  • Curtir 2
  • Obrigado 1
Postado

@sthefanes245    Nesse código você não vai precisar de tantas variáveis ,  e também as variáveis de controle dos loop 's  podem ser criadas dentro do próprio loop  ,  e isso se você estiver usando um IDE / compilador moderno ,  e Ali depois da multiplicação você pode usar as próprias variáveis dos dois loop's para inserir o resultado na posição adequada do vetor , e poderia ser assim  :

for (int i = 0; i < lin; i++)         // cria a variaveL de controle do Loop
  for (int j = 0; j < col; j++)       // cria a variaveL de controle do outro Loop
    V[ i * lin + j ] = M[i][j] * A;   // Multiplica e insere o resultado no vetor

e seu código poderia ser assim  :

#include <stdio.h>
#define lin 6
#define col 6
#define tam lin * col
int main() 
{
  int M[lin][col] = { 1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,
                      1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9 };
	                 // cria e incializa uma matriz com esses valores
  int V[tam] = { 0 };
  int A = 0;
  for (int i = 0; i < lin; i++) 
  {
    for (int j = 0; j < col; j++) 
    {
      printf("Informe os valores da matriz M[%d][%d] ", i, j);
      // scanf("%d", & M[i][j]);        use sem esse scanf apenas para testar
      printf("%3d\n",M[i][j]);
    }
  }
  printf("\npara Multiplicar pelos numeros na Matriz\n\
	      \rInforme o valor de A ");
  scanf("%d", &A);
  for (int i = 0; i < lin; i++) 
  {
    for (int j = 0; j < col; j++) 
    {
      V[ i * lin + j ] = M[i][j] * A;
      printf("%3d ", M[i][j]);
    }
    printf("\n");
  }
  printf("\nO vetor V eh :\n\n");
  for (int i = 0; i < tam; i++) 
    printf("vetor[%3d] =%3d\n", i,V[i]);
  return 0;
}

 

  • Curtir 1
  • Obrigado 1
Postado
Em 12/02/2022 às 18:15, Lucca Rodrigues disse:

@sthefanes245

Você se esqueceu de incrementar o valor de k, para acessar as demais posições do vetor.

Antes de tudo, inicialize o valor de k:

int k = 0;
// ...
V[k++] = M[i][j] * A;

Aliás:

3*3 = 9, a matriz tem 9 elementos, não 18.

#define lin 3
#define col 3
#define tam (lin*col)

sim, eu usei esses valores só pra facilitar na hora

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

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!