Função para preencher um vetor de Struct [RESOLVIDO]

1. Função para preencher um vetor de Struct [RESOLVIDO]

Gordon Freeman
GordonFreeman

(usa Ubuntu)

Enviado em 22/09/2011 - 15:01h

Pessoal tudo bem ?
Estou com uma dúvida aqui, parece que não é tão difício de resolver mas não estou conseguindo . Bom, tenho que criar um vetor de struct Que terá somente dois campos , um para guardar os elementos e outro para o tamanho n do vetor.

#define MAX 100

typedef struct vetor{
int elemento[MAX];Guarda os elementos do vetor
int n ; //Tamanho do vetor digitado pelo usuário
} tipoVet;

Meu problema é que o vetor var ser preenchido pelo usuário atravéz de uma função e não consigo implementar essas duas funções, com vetor normal eu consegui mas com vetor de struct estou tendo problema. Como disse, parece uma coisa besta , mas não estou conseguindo. Agradeço a ajuda de todos.

eis o cabeçalhos das funções :

// Inicializa a estrutura com 0 elementos
tipoVet iniciaVetorVazio (tipoVet v);

// Preenchimento do vetor via teclado
tipoVet leVetor (tipoVet v, int n);

//Recebe o vetor e o tamanho da função main e preenche o vetor


  


2. MELHOR RESPOSTA

Danilo Renato da Silva
danilo_renato

(usa Ubuntu)

Enviado em 23/09/2011 - 16:52h

aendereng acho q oq vc precisa é algo assim:

void preencheVetor(tipoVetor &vetor, int tam)
{
if(tam <= MAX)
{
vetor.n = tam;
int elem;
for (int idx=0;idx<=tam;idx++)
{
printf("Entre com o elemento %d",idx);
scanf("%d",&elem);
vetor.elemento[idx] = elem;
}
}
}

int main()
{
tipoVetor vetor;
int n;
printf( "Entre com o tamanho do vetor =>" );
scanf("%d",&n);
preencheVetor(vetor, n);
}

3. Re: Função para preencher um vetor de Struct [RESOLVIDO]

Danilo Renato da Silva
danilo_renato

(usa Ubuntu)

Enviado em 23/09/2011 - 11:16h

Não entendi exatamente o que vc precisa fazer. Existe a possibilidade de inicializar o elemento n do vetor e criar um vetor de n tipoVetor.
Aqui vai uma função que faz as duas coisas:

tipoVetor *inicializaVetor(int tam)
{
//criamos um vetor de tipoVetor de tamanho = tam
tipoVetor *vetor = new tipoVetor[tam];
//inicializamos cada elemento n do vetor = tam
for(int i = 0; i < tam; i++)
{
vetor->n = tam;
}
return vetor;
}


4. Re: Função para preencher um vetor de Struct [RESOLVIDO]

Gordon Freeman
GordonFreeman

(usa Ubuntu)

Enviado em 23/09/2011 - 15:41h

danilo_renato escreveu:

Não entendi exatamente o que vc precisa fazer. Existe a possibilidade de inicializar o elemento n do vetor e criar um vetor de n tipoVetor.
Aqui vai uma função que faz as duas coisas:

tipoVetor *inicializaVetor(int tam)
{
//criamos um vetor de tipoVetor de tamanho = tam
tipoVetor *vetor = new tipoVetor[tam];
//inicializamos cada elemento n do vetor = tam
for(int i = 0; i < tam; i++)
{
vetor->n = tam;
}
return vetor;
}


danilo_renato obrigado pela ajuda !!! Então, o que quero fazer é simples demais , mas por envolver Struct estou meio confuso.Bom, imagine você preenchendo um vetor diretamenet pelo programa principal :
printf( "Entre com o tamanho do vetor =>" );
scanf("%d",&n);
for (i=0;i<=n;i++)
{
printf("Entre com o elemento %d",i);
scanf("%d",&vetor[i])
}

A unica diferença é que é um vetor de struct que tem dois campos : um para guardar o valor dos elementos e outro o tamanho do vetor.
No mais, o vetor seria preenchido por uma função, não no programa principal.Eu teria que passar para a função o tamanho do vetor (n) e o vetor do tipo da struct que seria preenchido .


5. Re: Função para preencher um vetor de Struct [RESOLVIDO]

Gordon Freeman
GordonFreeman

(usa Ubuntu)

Enviado em 24/09/2011 - 10:07h

danilo_renato escreveu:

aendereng acho q oq vc precisa é algo assim:

void preencheVetor(tipoVetor &vetor, int tam)
{
if(tam <= MAX)
{
vetor.n = tam;
int elem;
for (int idx=0;idx<=tam;idx++)
{
printf("Entre com o elemento %d",idx);
scanf("%d",&elem);
vetor.elemento[idx] = elem;
}
}
}

int main()
{
tipoVetor vetor;
int n;
printf( "Entre com o tamanho do vetor =>" );
scanf("%d",&n);
preencheVetor(vetor, n);
}


Danilo, mais uma vez obrigado!!! Era isso mesmo, o grande lance era passar o vetor de Struct como ponteiro .Bom, fiz algumas modificações no código e rodou blz. o código final ficou assim:

#include <stdio.h>
#include <stdlib.h>
#define MAX 100

typedef struct noh
{
int elemento[MAX];
int n;
}tipoVetor;

void preencheVetor(tipoVetor *vetor, int tam)
{
if(tam <= MAX)
{ int idx;
vetor->n = tam;
int elem;
for ( idx=0;idx<=tam;idx++)
{
printf("Entre com o elemento %d",idx);
scanf("%d",&elem);
vetor->elemento[idx] = elem;
}
}
}

int main()
{
tipoVetor vetor;
int n,i;
printf( "Entre com o tamanho do vetor =>" );
scanf("%d",&n);
preencheVetor(&vetor, n);
printf("\n");
printf("Vetor Lido :");
for (i=0;i<=n;i++)
printf("%d ",vetor.elemento[i]);
getch();
return 0;
}

Valeu pela juda !!!


6. Re: Função para preencher um vetor de Struct [RESOLVIDO]

Danilo Renato da Silva
danilo_renato

(usa Ubuntu)

Enviado em 24/09/2011 - 10:40h

Opa, estamos ai pra ajudar ;)
Abraço!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts