fork(1) download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define TAM_PILHA 2
  5. #define NUM_ENTRA 5
  6.  
  7. void empilha(int *pilha, int *topo, int valor)
  8. {
  9. if (*topo <= TAM_PILHA)
  10. {
  11. pilha[*topo] = valor;
  12. (*topo)++;
  13. }
  14. else
  15. {
  16. printf("Pilha Cheia\n");
  17. }
  18. }
  19.  
  20. int desempilha(int *pilha, int *topo)
  21. {
  22. if (*topo > 0)
  23. {
  24. (*topo)--;
  25. return pilha[*topo];
  26. }
  27. else
  28. {
  29. printf("Pilha Vazia\n");
  30. }
  31. }
  32.  
  33. int main()
  34. {
  35. int pilha_par[TAM_PILHA], pilha_impar[TAM_PILHA], topo_par = 0, topo_impar = 0;
  36. int i = 0, num_do_usuario = 0;
  37. for (i = 0; i < NUM_ENTRA; i++)
  38. {
  39. printf("\nEntre com um numero: ");
  40. scanf("%d", &num_do_usuario);
  41.  
  42. if ((num_do_usuario % 2) == 0)
  43. {
  44. empilha(pilha_par, &topo_par, num_do_usuario);
  45. }
  46. else
  47. {
  48. empilha(pilha_impar, &topo_impar, num_do_usuario);
  49. }
  50.  
  51. }
  52.  
  53. printf("\n\nNumeros pares sao: ");
  54. while (topo_par > 0)
  55. {
  56. printf("%d ", desempilha(pilha_par, &topo_par));
  57. }
  58.  
  59. printf("\n\nNumeros impares sao: ");
  60. while (topo_impar > 0)
  61. {
  62. printf("%d ", desempilha(pilha_impar, &topo_impar));
  63. }
  64.  
  65. printf("\n\n");
  66.  
  67.  
  68. return 0;
  69. }
Success #stdin #stdout 0s 10320KB
stdin
1
2
3
4
5
stdout
Entre com um numero: 
Entre com um numero: 
Entre com um numero: 
Entre com um numero: 
Entre com um numero: 

Numeros pares sao: 4 2 

Numeros impares sao: 5 3 1