aydenme tengo un solo error
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define null 0
struct lista_elementos{
char elem[20];
struct lista_elementos*sig;
};
typedef struct lista_elementos nodo;
int menu(void);
void crear (nodo*pt);
nodo *insertar(nodo*pt);
nodo *eliminar(nodo*pt);
void mostrar(nodo*pt);
main(){
nodo*prin;
int eleccion;
do{
eleccion=menu();
switch(eleccion){
case 1: prin=(nodo*)malloc(sizeof(nodo));
crear(prin);
printf("
");
mostrar(prin);
continue;
case 2: prin=insertar(prin);
printf("
");
mostrar(prin);
continue;
case 3: prin=eliminar(prin);
printf("
");
mostrar(prin);
continue;
default: printf("********* FIN DE LA OPERACION *********
:");
}
}while(eleccion!=4);
return eleccion;}
int menu(void)
{
int eleccion;
do{
printf("
$*$*$*$* MENU *$*$*$*$
");
printf("1. CREAR AGENDA
");
printf("2. AGREGAR A AGENDA
");
printf("3. ELIMINAR DE AGENDA
");
printf("4. FIN
");
printf("Introduzca su elecion: ");
scanf("%d",&eleccion);
system("cls");
if (eleccion<1||eleccion>4)
printf("
ERROR - POR FAVOR INTENTELO DE NUEVO");
}
while(eleccion<1||eleccion>4);
printf("
");
return eleccion;}
void crear (nodo*registro)
{
printf("Datos:(Escribir Fin para terminar): ");
scanf("%s",registro->elem);
if(strcmp(registro->elem,"Fin")==0)
registro->sig=null;
else
{registro->sig=(nodo*)malloc(sizeof(nodo));
crear (registro->sig);}
return;}
void mostrar (nodo*registro)
{if (registro->sig!=null){
printf("%s
",registro->elem);
mostrar(registro->sig);}
return;}
nodo* insertar(nodo* primero)
{
nodo* localizar(nodo*,char[]);
nodo*nuevoregistro;
nodo* marca;
char nuevodato[20],objeto[20];
printf("Nuevo dato: ");
scanf("%s",nuevodato);
printf("Colocar de lante de: ");
scanf("%s",objeto);
if(strcmp(primero->elem,objeto)==0){
nuevoregistro=(nodo*)malloc(sizeof(nodo));
strcpy(nuevoregistro->elem,nuevodato);
nuevoregistro->sig=primero;
primero=nuevoregistro;
}
else
{
marca = localizar(primero,objeto);
if(marca==null)
printf("
No se encuentra coincidencia pruebe de n
uevo");
else
{
nuevoregistro=(nodo*)malloc(sizeof(nodo));
strcpy(nuevoregistro->elem,nuevodato);
nuevoregistro->sig=marca->sig;
marca->sig=nuevoregistro;
}
}
return (primero);}
nodo*localizar(nodo*registro,char objeto[])
{
if (strcmp(registro->sig->elem,objeto)==0)
return registro;
else
if(registro->sig->sig==null)
return (null);
else
localizar(registro->sig,objeto);
return 0;}
nodo*eliminar(nodo*primero)
{
nodo* localizar(nodo*, char []);
nodo* marca;
nodo*temp;
char objeto[20];
printf("Dato a Eliminar: ");
scanf("%s",objeto);
if(strcmp(primero->elem,objeto)==0)
{
temp=primero->sig;
free(primero);
primero=temp;}
else
{
marca= localizar(primero,objeto);
if(marca==null)
printf("
No se encuentra coincidencia - Pruebe de nuevo
");
else
{
temp=marca->sig->sig;
free(marca->sig);
marca->sig=temp;}
}
return primero;
}