#include <stdio.h>
#include <stdlib.h>

struct cel
{
    int valor;
    struct cel * prox;
};

typedef struct cel celula;

int inserir(celula **ini);
void escreve(celula *ini);

int main()
{
    int i = 0,aux;
    celula *inicio = NULL;

    do
    {
        printf("\nLista[%d]:",i+1);
        aux = inserir(&inicio);
        printf("\n%d",aux);
        i++;
    } while (aux == 1);
    escreve(inicio);
    
    return 0;
}

int inserir(celula **ini)
{
    int n;
    scanf("%d",&n);
    if(n == 0)
        return 0;

    celula * aux = (celula*) malloc(sizeof(celula));

    aux->valor = n;
    aux->prox = ini == NULL ? NULL : *ini;
    *ini = aux;

    return 1;
}

void escreve(celula *ini)
{
    int i=1;
    celula * aux =ini;

    while(aux != NULL)
    {
        printf("\nlista[%d]=%d",i,aux->valor);
        i++;
        aux = aux->prox;
    }
}
