Advertisement
Guest User

Untitled

a guest
Nov 20th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. struct sorvete{
  4. float preco;
  5. char sabor[50];
  6. struct sorvete *prox;
  7. };
  8. struct sorvete *inicio;
  9. void criar_ordem(){
  10. struct sorvete *aux,*ant;
  11. char sabor[50];
  12. float preco;
  13. int i;
  14. printf("Digitar o sabor:");
  15. scanf("%s", &sabor);
  16. printf("Digite o preco:");
  17. scanf("%f", &preco);
  18. for(i=0;i<50;i++)
  19. sabor[i]=toupper(sabor[i]);
  20. if(strcmp(sabor,"FIM")!=0){
  21. inicio=(struct sorvete *)malloc(sizeof(struct sorvete));
  22. strcpy(inicio->sabor,sabor);
  23. inicio->preco=preco;
  24. aux=inicio;
  25. aux->prox=inicio;
  26. }
  27. printf("Digitar o sabor:");
  28. scanf("%s", &sabor);
  29. while(strcmp(sabor,"FIM")!=0){
  30. for(i=0;i<50;i++)
  31. sabor[i]=toupper(sabor[i]);
  32. printf("Digite o preco:");
  33. scanf("%f", &preco);
  34. if(strcmp(sabor,inicio->sabor)<0){
  35. aux=(struct sorvete *)malloc(sizeof(struct sorvete));
  36. strcpy(aux->sabor,sabor);
  37. aux->preco=preco;
  38. aux->prox=inicio;
  39. inicio->prox=aux;
  40. inicio = aux;
  41. aux=inicio;
  42. }else{
  43. aux=inicio;
  44. while((strcmp(sabor,aux->sabor)>0)&& aux->prox!=inicio){
  45. ant=aux;
  46. aux=aux->prox;
  47. }
  48. if(strcmp(sabor,aux->sabor)<0){
  49. ant->prox=(struct sorvete *)malloc(sizeof(struct sorvete));
  50. aux->preco=preco;
  51. strcpy(ant->prox->sabor,sabor);
  52. ant->prox->prox=aux;
  53. aux->prox=inicio;
  54. }else{
  55. aux->prox=(struct sorvete *)malloc(sizeof(struct sorvete));
  56. aux->prox->preco=preco;
  57. strcpy(aux->prox->sabor,sabor);
  58. aux=aux->prox;
  59. aux->prox=inicio;
  60. }
  61. }
  62. printf("Digitar o sabor:");
  63. scanf("%s", &sabor);
  64. }
  65. }
  66. void mostra(){
  67. struct sorvete *aux;
  68. aux=inicio->prox;
  69. if (inicio==(struct sorvete *) NULL)
  70. printf ("Lista vazia!");
  71. else{
  72. printf ("Elementos da lista:\n%s\t%.2f\n",inicio->sabor,inicio->preco);
  73. while (aux!=inicio){
  74. printf ("%s\t%.2f\n", aux->sabor, aux->preco);
  75. aux = aux->prox;
  76. }
  77. }
  78. }
  79. main(){
  80. criar_ordem();
  81. mostra();
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement