bvianaro Postado Outubro 25, 2015 Denunciar Share Postado Outubro 25, 2015 Preciso ordenar o programa abaixo em ordem crescente somente pelos codigos dos produtos. alguém da um help?#include<stdio.h>#include<stdlib.h>struct matel{ int codigo; char descricao[40]; float custo; struct matel *prox;};typedef struct matel MATEL;MATEL *inicio, *fim;int contador;void mostra_lista();int main(){ int k,quant; MATEL *p,*aux; contador=0; printf("\nQuantas pecas serao registradas? "); scanf("%d",&quant); while (quant < 1) { printf("\nInforme valor maior que zero "); scanf("%d",&quant); } for(k=0;k<quant;k++) { aux=(MATEL *)malloc(sizeof(MATEL)); if(aux==NULL) { printf("\nImpossivel alocar espaco. Tecle algo"); getch(); return 0; } //Preeenche o vetor printf("\nDigite codigo do material[%d] : ",k+1); scanf("%d",&(*aux).codigo); fflush(stdin); printf("\nDigite descricao do material[%d] ",k+1); gets((*aux).descricao); printf("\nDigite custo do material[%d] ",k+1); scanf("%f",&(*aux).custo); if(contador==0) { inicio=fim=aux; contador++; aux->prox=NULL; } else { fim->prox=aux; fim=aux; aux->prox=NULL; contador++; } } mostra_lista(); printf("\n"); system("pause"); return 0;} void mostra_lista() { MATEL *aux; aux=inicio; while(aux) { printf("\nCodigo: %d",(*aux).codigo); printf("\nDescricao: %s",(*aux).descricao); printf("\nCusto: %.2f\n",(*aux).custo); aux=aux->prox; } } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 roccoC/C++ Postado Outubro 25, 2015 Denunciar Share Postado Outubro 25, 2015 (editado) Vou te passar um link de uma lista encadeada ordenada que postei há algunsmêses atrás, pode ser que te ajude a montar sua própria versão, na verdadefoque na parte de inserir da lista e imprimir, que são funções.http://codigosfontes-ccplus-plus.blogspot.com.br/2012/11/lista-encandeada-em-linguagem-c.html Editado Outubro 25, 2015 por roccoC/C++ Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
bvianaro
Preciso ordenar o programa abaixo em ordem crescente somente pelos codigos dos produtos. alguém da um help?
#include<stdio.h>
#include<stdlib.h>
struct matel
{
int codigo;
char descricao[40];
float custo;
struct matel *prox;
};
typedef struct matel MATEL;
MATEL *inicio, *fim;
int contador;
void mostra_lista();
int main()
{
int k,quant;
MATEL *p,*aux;
contador=0;
printf("\nQuantas pecas serao registradas? ");
scanf("%d",&quant);
while (quant < 1)
{
printf("\nInforme valor maior que zero ");
scanf("%d",&quant);
}
for(k=0;k<quant;k++)
{
aux=(MATEL *)malloc(sizeof(MATEL));
if(aux==NULL)
{
printf("\nImpossivel alocar espaco. Tecle algo");
getch();
return 0;
}
//Preeenche o vetor
printf("\nDigite codigo do material[%d] : ",k+1);
scanf("%d",&(*aux).codigo);
fflush(stdin);
printf("\nDigite descricao do material[%d] ",k+1);
gets((*aux).descricao);
printf("\nDigite custo do material[%d] ",k+1);
scanf("%f",&(*aux).custo);
if(contador==0)
{
inicio=fim=aux;
contador++;
aux->prox=NULL;
}
else
{
fim->prox=aux;
fim=aux;
aux->prox=NULL;
contador++;
}
}
mostra_lista();
printf("\n");
system("pause");
return 0;
}
void mostra_lista()
{
MATEL *aux;
aux=inicio;
while(aux)
{
printf("\nCodigo: %d",(*aux).codigo);
printf("\nDescricao: %s",(*aux).descricao);
printf("\nCusto: %.2f\n",(*aux).custo);
aux=aux->prox;
}
}
Link para o comentário
Compartilhar em outros sites
1 resposta 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.