Oi estou com uma dúvida num exercicio de lista dinamica,  nesse código eu consigo mostrar só o ultimo valor que o usuário digita,  queria saber saber como mostrar todos os elementos de uma lista.  vlw.     #include <stdio.h>
#include <stdlib.h>
#include <conio.h>
typedef struct bloco
{
        
        int dado;
        struct bloco *prox;
}nodo;
nodo *cria_nodo()
{
     
     nodo *p;
     p=(nodo*) malloc(sizeof(nodo));
     
     if(!p)
     {
           printf("\nErro");
           exit(0);
     }
     
     
     return p;
}
void insere_lista(nodo **N, int dado)
{
     nodo *novo;
     novo=cria_nodo();
     novo->dado=dado;
     novo->prox=*N;
     *N=novo;
}
int main()
{
    int valor,valor1;
    nodo *lista=NULL;
    
    
    
     printf("Digite o valor");scanf("%d",&valor);
     printf("Digite o valor2");scanf("%d",&valor1); 
    
  
  
       insere_lista(&lista,valor);
       insere_lista(&lista,valor1);
    
        printf("Primeiro dado %d",*lista);  
       printf("Segundo dado %d",*lista);         
                  
           
               
      
    
   
    
    printf("\n");
      
    
    system("PAUSE");
    getch();
    return 0;
}