fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct cel
  5. {
  6. int valor;
  7. struct cel * prox;
  8. };
  9.  
  10. typedef struct cel celula;
  11.  
  12. int inserir(celula **ini);
  13. void escreve(celula *ini);
  14.  
  15. int main()
  16. {
  17. int i = 0,aux;
  18. celula *inicio = NULL;
  19.  
  20. do
  21. {
  22. printf("\nLista[%d]:",i+1);
  23. aux = inserir(&inicio);
  24. printf("\n%d",aux);
  25. i++;
  26. } while (aux == 1);
  27. escreve(inicio);
  28.  
  29. return 0;
  30. }
  31.  
  32. int inserir(celula **ini)
  33. {
  34. int n;
  35. scanf("%d",&n);
  36. if(n == 0)
  37. return 0;
  38.  
  39. celula * aux = (celula*) malloc(sizeof(celula));
  40.  
  41. aux->valor = n;
  42. aux->prox = ini == NULL ? NULL : *ini;
  43. *ini = aux;
  44.  
  45. return 1;
  46. }
  47.  
  48. void escreve(celula *ini)
  49. {
  50. int i=1;
  51. celula * aux =ini;
  52.  
  53. while(aux != NULL)
  54. {
  55. printf("\nlista[%d]=%d",i,aux->valor);
  56. i++;
  57. aux = aux->prox;
  58. }
  59. }
  60.  
Success #stdin #stdout 0s 9432KB
stdin
10
20
30
40
50
0
stdout
Lista[1]:
1
Lista[2]:
1
Lista[3]:
1
Lista[4]:
1
Lista[5]:
1
Lista[6]:
0
lista[1]=50
lista[2]=40
lista[3]=30
lista[4]=20
lista[5]=10