Ir ao conteúdo

Posts recomendados

Postado

Estou com problema na hora de passar os valores de 3 vetores pra uma matriz.

Ex: int Valor[5], Peso[5];

 float Vu[5], matriz[5][3];

O meu objetivo é passar os valores dos vetores 'Valor, Peso e Vu' para as colunas da matriz. Por exemplo:

Valor = {4, 2, 1, 2, 10};

Peso = {12, 2, 1, 1, 4};

Vu = {0.333, 1, 1, 2, 2.5};

 

Passando esses valores para a matriz, cada vetor formara uma coluna na matriz:

 

matriz = { {4, 12, 0.333},

                {2, 2, 1},

                {1, 1, 1},

                {2, 1, 2},

               {10, 4, 2.5} };

mas não estou conseguindo passar os valores dos vetores para a matriz, alguém pode me ajudar?

/* 
 * Problema da mochila booleana
 */
 
#include <stdio.h>
#include <stdlib.h>

#define maxN 200	//coloque aqui a quantidade maxima de objetos 
#define maxC 1000	//coloque aqui o valor maximo do peso da mochila


int peso[maxN+1];
int valor[maxN+1];

int main(){
	int capacidade, i, itens;
  
  

  printf("Insira a capacidade da mochila e o numero de itens: ");
  
	while(scanf("%d %d", &capacidade, &itens), capacidade ){ //capacidade da mochila, numero de objetos
	
		//lendo os elementos:
		for(i = 0; i<itens; i++){
      printf("Insira o valor e o peso do ITEM numero %d: \n", i);
			scanf("%d %d", &valor[i], &peso[i]); //peso do item, valor do objeto
		}
    
    float vu[itens];
    
    for(int i=0; i<itens; i++){
      vu[i] = (float)valor[i] / peso[i];
    }
    printf("Valor   Peso     Vu\n");
    
    for(int i=0; i<itens; i++){
    printf("   %d   ", valor[i]);
    printf("   %d   ", peso[i]);
    printf("  %0.2f \n", vu[i]);
  }


    int matriz[itens][3];
    for(int i=0;i<itens;i++){
      for(int j=0;j<itens;j++){
        matriz[i][j] = valor[i];
        matriz[i][j] = peso[i];
      }
    }

    printf("Na matriz: \n");
    for(int i=0;i<itens;i++){
      for(int j=0;j<itens;j++){
        printf("%d", matriz[i][j]);
      }
      printf("\n");
    }

    
    exit(0);
}
  
  return 0;
	}

 

 

 

 

  • Obrigado 1
Postado

@Emerson2156547384729849     voce precisa trocar a variavel  i  pela  j  na hora de armazenar , e um loop  j para cada coluna .

@Emerson2156547384729849   

ou assim com apenas um loop

 int matriz[itens][3];

  for(int j=0;j<itens;j++)

  {

    matriz[j][0] = valor[j];

    matriz[j][1] = peso[j];

    mattiz[j][2] = vu[j];

}

}

printf("Na matriz: \n");

for(int i=0;i<itens;i++)

{

  for(int j=0;j<itens;j++)

  {

   printf("%d", matriz[i][j]);

   }

    printf("\n");

}

exit(0); }

Postado

Os tipos são diferentes. Não funciona assim. Se precisa mesmo disso use uma matriz de void* e guarde os endereços.

 

Parece que o que você quer é um inventário e assim estaria melhor com uma vetor de estrutura onde cada ocorrência descreveria um item da tal mochila, e mais um contador dando o total de items na mochila.

 

Escreva em torno dos dados. É mais simples.

  • Curtir 1
  • Haha 1
  • 1 ano depois...
Postado

@Emerson2156547384729849

Boa Noite

 

Sem pensar muito, basta unir os dois tipos dos diferentes tipos dos vetores e definir a matriz da união, claro que sim... declarar uma união exclusivamente para ter essa matriz, já que esse é o problema!  Ou definir a matriz para o tipo que não há perda nas configurações: cuja única consequência no final é num especificador.

 

obrigado por lê isso 🙂 

 

 

 

 

 

 

 

 

 

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!