Código:
Seria crear una nueva funcion que reciba la estructura y que la guarde, no enviaria nada, seria void, puesto que ya acabaria el programa y esta solo se efectuaria a la salida!! Espero alguna ayudita jeje, gracias de todas formas.struct datos
{
int codigo;
char nombre[10];
}; // Estructura que define los datos a manejar por el programa
struct nodo
{
struct datos dato;
struct nodo *sig;
};
struct nodo * introducir( struct nodo *cabeza);
int menu();
void listar(struct nodo *cabeza);
void main ()
{
struct nodo *primero=NULL;
int opc;
do
{
opc=menu();
switch(opc)
{
case 1:
primero=introducir(primero);
break;
case 2:
listar(primero);
break;
}
}while(opc!=3);
}
int menu()
{
int opcion;
do
{
system("cls");
printf("\n\n\t\tMeNu\n");
printf("\n\t1.- ReGisTraR uNa VeNTa.");
printf("\n\t2.- LiSTar.");
printf("\n\t3.- SaLiR.");
printf("\n\n\t\tIntroDuzCa uNa oPCioN... ");
scanf("%d",&opcion);
if(opcion<=0 || opcion>3)
printf("\n\n\tMEEEEEC. 3RR0R");
}while(opcion<=0 || opcion>3);
return opcion;
}
struct nodo *introducir( struct nodo *cabeza)
{
struct nodo *aux=cabeza;
struct nodo *paux;
aux=(struct nodo *)malloc(sizeof(struct nodo));
if(aux==NULL)
exit(-1);
aux->sig=NULL;
printf("\nCoDiGo... ");
scanf("%d",&aux->dato.codigo);
fflush(stdin);
printf("\nNomBre... ");
scanf("%10[^\n]", &aux->dato.nombre);
if(cabeza==NULL)
cabeza=aux;
else
{
paux=cabeza;
while(paux->sig!=NULL)
{
paux=paux->sig;
}
paux->sig=aux;
}
return cabeza;
}
void listar(struct nodo *cabeza)
{
struct nodo *paux; // --> Se crea puntero auxiliar
paux=cabeza; // --> Se igualan ambos. Esto se hace para recorrer con el
// puntero y no el parametro cabeza.
/*( Proceso... Como recorrer un puntero)*/
while(paux!=NULL)
{
//(1). Si puntero aux es != nuLL...
// Visualizo los datos de la venta registrados en el nodo paux
printf("\n\n\t...ProDuCTo...\n\n");
printf("\nCoDiGo.... %d",(paux->dato).codigo);
printf("\nNoMBre.. %s",(paux->dato).nombre);
//(2). Avanzo un nodo...
paux=paux->sig;
}
return;
}
Saludos

Este tema le ha gustado a 1 personas