Guest Humberto Postado Novembro 11, 2004 Denunciar Share Postado Novembro 11, 2004 Olá pessoal....É possível inserir numa fila uma estrutura com todos os seus campos?como passo a estrutura como referência...tenho aqui o codigo struct objeto{ char nome[20]; int benef; int peso; int desemp;}nobjeto;//Coloca um item no final da filavoid qcoloca(char *q){ if(cpos==MAX) { printf("Fila cheia\n"); return; } p[cpos] = q; cpos++;}//Insere um evento na filavoid Inserir(void){ int capac, desemptotal; struct objeto nobjeto; printf("Qual a capacidade total?\n"); scanf("%d", &capac); for(desemptotal=0; desemptotal<capac;) { printf("Nome do Objeto:\n "); scanf("%s",nobjeto.nome); printf("Beneficio:\n "); scanf("%d",&nobjeto.benef); printf("Peso:\n "); scanf("%d",&nobjeto.peso); nobjeto.desemp = nobjeto.benef / nobjeto.peso; printf("Nome = %s\n",nobjeto.nome); printf("Desempenho = %d\n",nobjeto.desemp); qcoloca(struct objeto nobjeto); // dá erro de sintaxe desemptotal = desemptotal + nobjeto.desemp; }} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Novembro 11, 2004 Denunciar Share Postado Novembro 11, 2004 powvaleu galera Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kandrade Postado Novembro 11, 2004 Denunciar Share Postado Novembro 11, 2004 tente declarar sua função assim.......q receberá o endereço inicial de nobjeto e assim sua variavel q será do tipo struct objeto..............void qcoloca(struct objeto q)espero ter ajudado!!!!!1te+........qualquer coisa me escreve: kleber.andrade@uol.com.br Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Wicker Man Postado Novembro 11, 2004 Denunciar Share Postado Novembro 11, 2004 Opa!Declare a estrutura assim:struct objeto { char nome[20]; int benef; int peso; int desemp; }; Na hora de declarar um objeto dessa estrutura faça: struct objeto o; // criou-se o objeto "o" Na definição da função "qcoloca", se quer passar um objeto dessa estrutura para a função usando chamada por referência (usando ponteiros), faça: void qcoloca( struct objeto *obj ) { ... } Na hora de passar o objeto "o" que criamos anteriormente numa chamada da função: qcoloca( &o );Se ainda tiver dúvidas, poste aí! Até mais! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest Humberto
Olá pessoal....
É possível inserir numa fila uma estrutura com todos os seus campos?
como passo a estrutura como referência...
tenho aqui o codigo
struct objeto
{
char nome[20];
int benef;
int peso;
int desemp;
}nobjeto;
//Coloca um item no final da fila
void qcoloca(char *q)
{
if(cpos==MAX)
{
printf("Fila cheia\n");
return;
}
p[cpos] = q;
cpos++;
}
//Insere um evento na fila
void Inserir(void)
{
int capac, desemptotal;
struct objeto nobjeto;
printf("Qual a capacidade total?\n");
scanf("%d", &capac);
for(desemptotal=0; desemptotal<capac;)
{
printf("Nome do Objeto:\n "); scanf("%s",nobjeto.nome);
printf("Beneficio:\n "); scanf("%d",&nobjeto.benef);
printf("Peso:\n "); scanf("%d",&nobjeto.peso);
nobjeto.desemp = nobjeto.benef / nobjeto.peso;
printf("Nome = %s\n",nobjeto.nome);
printf("Desempenho = %d\n",nobjeto.desemp);
qcoloca(struct objeto nobjeto); // dá erro de sintaxe
desemptotal = desemptotal + nobjeto.desemp;
}
}
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.