Advertisement
Nannoka

lista

Jul 22nd, 2014
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.64 KB | None | 0 0
  1. #include <string.h>
  2. #include <stdlib.h>
  3.  
  4. void Listar(void);
  5. int Insere(int *ptr);
  6. int Retira(void);
  7.  
  8. int proximaPosicao = 0; // Precisamos armazenar a próxima posição da fila
  9. int recuperar = 0;
  10. int fila[20];
  11.  
  12. int main(void)
  13. {
  14.     int i = 0;
  15.     for (i = 0; i < 20; i++)
  16.     {
  17.         int n;
  18.         printf ("Bem-vindos ao churrasco de capivara da Ana.\n\n");
  19.         // Preenche a fila até 20 alunos
  20.         fila[i] = NULL;
  21.         // Entrar com os dados na fila
  22.         static int codigo[100], *ptr;
  23.         puts("ENTER vazio para sair\n");
  24.         do
  25.         {
  26.             printf("Qual o codigo do aluno que quer experimentar a capivara? ");
  27.             gets(codigo);
  28.             ptr = (int *) malloc(codigo);
  29.             strcpy(ptr, codigo);
  30.             if (*codigo) Insere(ptr);
  31.         } while (*codigo); // Sai quando não há entrada
  32.         printf("\nAlunos na fila do lanche para comer churrasco de capivara [FIFO]:\n\n");
  33.         for (n = recuperar; n < proximaPosicao; n++)
  34.         {
  35.             printf("Elemento %d : %s \n", n + 1, fila[n]);
  36.         }
  37.         // Apagar a primeira entrada depois da fila
  38.         Retira();
  39.         // Fila após retirar
  40.         printf("\nAlunos ainda esperando o lanche, apos um ser servido [FIFO]:\n\n");
  41.         for (n = recuperar; n < proximaPosicao; n++)
  42.         {
  43.             printf("Elemento %d : %s \n", n + 1, fila[n]);
  44.         }
  45.         getchar();
  46.         return 0;
  47.     }
  48. }
  49. // Colocar mais um aluno na fila para saborear a capivara
  50. int Insere(int *ptr)
  51. {
  52.     if (proximaPosicao == 20)
  53.     {
  54.         printf ("\nSinto muito, mas a fila esta cheia.\n\n");
  55.         return 0;
  56.     }
  57.     fila[proximaPosicao] = ptr;
  58.     proximaPosicao++;
  59. }
  60. // Retirar o primeiro aluno da fila
  61. int Retira(void)
  62. {
  63.     if (proximaPosicao == recuperar)
  64.     {
  65.         printf("\nA fila esta vazia!");
  66.         return 0;
  67.     }
  68.     recuperar++;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement