fork 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. printf("%d na posição %d ", valor, *topo);
  9. if (*topo < TAM_PILHA) {
  10. pilha[*topo] = valor;
  11. (*topo)++;
  12. } else {
  13. printf("Pilha Cheia\n");
  14. }
  15. }
  16.  
  17. int desempilha(int *pilha, int *topo) {
  18. if (*topo > 0) {
  19. (*topo)--;
  20. return pilha[*topo];
  21. } else {
  22. printf("Pilha Vazia\n");
  23. return -1;
  24. }
  25. }
  26.  
  27. int main() {
  28. int pilha_par[TAM_PILHA] = { 0 }, pilha_impar[TAM_PILHA] = { 0 }, topo_par = 0, topo_impar = 0;
  29. for (int i = 0; i < NUM_ENTRA; i++) {
  30. int num_do_usuario = 0;
  31. printf("\nEntre com um numero: ");
  32. scanf("%d", &num_do_usuario);
  33. if (num_do_usuario % 2 == 0) {
  34. printf("Vai entrar na pilha par: ");
  35. empilha(pilha_par, &topo_par, num_do_usuario);
  36. } else {
  37. printf("Vai entrar na pilha impar: ");
  38. empilha(pilha_impar, &topo_impar, num_do_usuario);
  39. }
  40. }
  41. printf("\n\nNumeros pares sao: ");
  42. while (topo_par > 0) {
  43. printf("%d ", desempilha(pilha_par, &topo_par));
  44. }
  45. printf("\n\nNumeros impares sao: ");
  46. while (topo_impar > 0) {
  47. printf("%d ", desempilha(pilha_impar, &topo_impar));
  48. }
  49. }
  50.  
  51. //http://pt.stackoverflow.com/q/189885/101
Success #stdin #stdout 0s 9432KB
stdin
3
4
2
6
5
stdout
Entre com um numero: Vai entrar na pilha impar: 3 na posição 0 
Entre com um numero: Vai entrar na pilha   par: 4 na posição 0 
Entre com um numero: Vai entrar na pilha   par: 2 na posição 1 
Entre com um numero: Vai entrar na pilha   par: 6 na posição 2 Pilha Cheia

Entre com um numero: Vai entrar na pilha impar: 5 na posição 1 

Numeros pares sao: 2 4 

Numeros impares sao: 5 3