fork(4) download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define MAX 10
  5.  
  6. typedef struct pilha {
  7. int qnt;
  8. int dados[MAX];
  9. } Pilha;
  10. Pilha* cria() {
  11. Pilha *p = malloc(sizeof(Pilha));
  12. if (p != NULL) {
  13. p->qnt = 0;
  14. }
  15. return p;
  16. }
  17. void insere(Pilha *p, int valor) {
  18. p->dados[p->qnt] = valor;
  19. p->qnt++;
  20. }
  21. void exibe(Pilha *p) {
  22. for (int i = 0; i < p->qnt; i++)
  23. printf("%3d", p->dados[i]);
  24. }
  25. Pilha* inverte(Pilha *p) {
  26. Pilha *outra = cria();
  27. while (p->qnt > 0) {
  28. outra->dados[outra->qnt] = p->dados[p->qnt - 1];
  29. p->qnt--;
  30. outra->qnt++;
  31. }
  32. return outra;
  33. }
  34. int main() {
  35. Pilha *p = cria();
  36. insere(p, 32);
  37. insere(p, 45);
  38. insere(p, 78);
  39. exibe(p);
  40. p = inverte(p);
  41. printf("\n");
  42. exibe(p);
  43. }
Success #stdin #stdout 0s 2300KB
stdin
Standard input is empty
stdout
 32 45 78
 78 45 32