Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- struct sorvete{
- float preco;
- char sabor[50];
- struct sorvete *prox;
- };
- struct sorvete *inicio;
- void criar_ordem(){
- struct sorvete *aux,*ant;
- char sabor[50];
- float preco;
- int i;
- printf("Digitar o sabor:");
- scanf("%s", &sabor);
- printf("Digite o preco:");
- scanf("%f", &preco);
- for(i=0;i<50;i++)
- sabor[i]=toupper(sabor[i]);
- if(strcmp(sabor,"FIM")!=0){
- inicio=(struct sorvete *)malloc(sizeof(struct sorvete));
- strcpy(inicio->sabor,sabor);
- inicio->preco=preco;
- aux=inicio;
- aux->prox=inicio;
- }
- printf("Digitar o sabor:");
- scanf("%s", &sabor);
- while(strcmp(sabor,"FIM")!=0){
- for(i=0;i<50;i++)
- sabor[i]=toupper(sabor[i]);
- printf("Digite o preco:");
- scanf("%f", &preco);
- if(strcmp(sabor,inicio->sabor)<0){
- aux=(struct sorvete *)malloc(sizeof(struct sorvete));
- strcpy(aux->sabor,sabor);
- aux->preco=preco;
- aux->prox=inicio;
- inicio->prox=aux;
- inicio = aux;
- aux=inicio;
- }else{
- aux=inicio;
- while((strcmp(sabor,aux->sabor)>0)&& aux->prox!=inicio){
- ant=aux;
- aux=aux->prox;
- }
- if(strcmp(sabor,aux->sabor)<0){
- ant->prox=(struct sorvete *)malloc(sizeof(struct sorvete));
- aux->preco=preco;
- strcpy(ant->prox->sabor,sabor);
- ant->prox->prox=aux;
- aux->prox=inicio;
- }else{
- aux->prox=(struct sorvete *)malloc(sizeof(struct sorvete));
- aux->prox->preco=preco;
- strcpy(aux->prox->sabor,sabor);
- aux=aux->prox;
- aux->prox=inicio;
- }
- }
- printf("Digitar o sabor:");
- scanf("%s", &sabor);
- }
- }
- void mostra(){
- struct sorvete *aux;
- aux=inicio->prox;
- if (inicio==(struct sorvete *) NULL)
- printf ("Lista vazia!");
- else{
- printf ("Elementos da lista:\n%s\t%.2f\n",inicio->sabor,inicio->preco);
- while (aux!=inicio){
- printf ("%s\t%.2f\n", aux->sabor, aux->preco);
- aux = aux->prox;
- }
- }
- }
- main(){
- criar_ordem();
- mostra();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement