Ver Mensaje Individual
  #4 (permalink)  
Antiguo 30/11/2010, 05:34
miguel_sanchez_18
 
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: que alguien me ayude por favor a solucionar este problema

bueno gracias por la ayuda el programa es este pero no me copila soy nuevo en esto y no entiendo muy bien programación espero que me ayude

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

#define T_NOM 101
#define T_EDAD 3

struct persona {
char nom[100];
char edad[3];
struct persona *siguiente;
};


#define LEE_CAD(c,n) { int i=0; \
c[i]=getchar();\
while((c[i]=='\n') || (c[i]=='\t')) c[i]=getchar();\
while ((c[i]!='\n') && (i < (n-1))){ \
i++;\
c[i]=getchar(); }\
c[i]='\0'; }
#include "estructura_de_datos.h"

int main(){
struct persona *lista=NULL;
struct persona *nodo;

int op;
void alta_inicio();
void alta_final();
void recorrer_lista();

do{
do{
printf("Elija una opción:\n");
printf("1--> Añadir al principio.\n");
printf("2--> Añadir al final.\n");
printf("3--> Recorrer la lista.\n");
printf("4--> Salir.\n");
scanf("%d",&op);
}while((op < 1) || (op > 4));
if(op != 4)
switch(op){
case 1: { alta_inicio(&lista);break;}
case 2: { alta_final(&lista);break;}
case 3: { recorrer_lista(&lista);break;}
}
}while(op != 4);
exit(0);
}

void alta_inicio(struct persona **lista){
struct persona *nuevo_nodo;
nuevo_nodo=(struct persona *)malloc(sizeof(struct persona));
if(nuevo_nodo != NULL){
nuevo_nodo->siguiente = *lista;
*lista = nuevo_nodo;
printf("Nombre: ");
LEE_CAD(nuevo_nodo->nom,100);
printf("Edad: ");
LEE_CAD(nuevo_nodo->edad,3);
}
}

void alta_final(struct persona **lista){
struct persona *nuevo_nodo;
struct persona *nodo_aux;

nuevo_nodo=(struct persona *)malloc(sizeof(struct persona));
if(nuevo_nodo != NULL){
nodo_aux = *lista;
while(nodo_aux->siguiente != NULL)
nodo_aux = nodo_aux->siguiente;
nodo_aux->siguiente=nuevo_nodo;
nuevo_nodo->siguiente=NULL;
LEE_CAD(nuevo_nodo->nom,100);
LEE_CAD(nuevo_nodo->edad,3);
}
else
printf("Error al tomar memoria del nuevo nodo.\n");
}

void recorrer_lista(struct persona **lista){
struct persona *nodo_aux;
nodo_aux = *lista;
while(nodo_aux != NULL){
printf("%s\n",nodo_aux->nom);
printf("%s\n",nodo_aux->edad);
nodo_aux = nodo_aux->siguiente;
}
}