este es el codigo k tengo pero me lo inserta en medio si alguien sabe decirme k me falla se lo agradeceria
/* Debemos almacenar la infomacion de la inscripcion de los participantes de un torneo de parchis,esa información es
Nombre
Fecha nacimiento
Domincilio
Dni
Numero de equipo
Categoría
Donde numero de equipo va a ser un entero positivo que identificara el equipo al k pertenece.de cada eqpuipo van al torneo dos representantes, el principal y un suplente
La categoría es un carácter a (alevin de 11 a 12 años),I (infantil 13 a 14 años ),C(cadete de 15 a 16 años )j(juvenil de 17 a 18 años )s(señor de 19 a 39 años )v(veterano a de 40 a 60años) la manera de organizar estos datos va a ser por categoría y dentro de cada una de ellas por orden alfabetico de nombre
1 implementar la estructura de datos que soporte dicha información
2operacion para insertar un nuevo elemento en la estructura
3 modulo que dado el dni devuelva su equipo y su categoría
4listar por pantalla todos los participantes por categoría
5volcar en un fichero el nombre de todos los participantes ordenados x categoría
6eliminar los datos de un participante que especifica el usuario
7mostrar los equipos que solo tienen un participante
en c++ */
/*Definición y uso de una lista enlazada*/
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <conio.c>
#include <dos.h>
#define l 721690//el año 2004 del 2 de septiembre pasado a dias
typedef /* estructura que se utiliza para almacenar los registros */
struct datos
{
char nombre[51];
char apellidos[50];
int fecha;
char domicilio[51];
int DNI ;
int num_equip;
char categoria;
struct datos *sig,*ant;
};
/* Variables Globales */
struct dato *p; /* puntero auxiliar */
struct datos * ultimo=NULL; /* puntero al final de la lista */
struct datos *cabecera=NULL; /* puntero al inicio de la lista */
int guardado = 0; /* revisa si se ha modificado la lista */
int nleidos = 0; /* cantidad de elementos en la lista */
int elimina_sm = 0; /* elimina el archivo creado si no se han hecho modificaciones */
/* -----------------------PROTOTIPO DE LAS FUNCIONES----------------------*/
void libera(void);
void insertar(struct datos *p); /* inserta registros ordenadamente en la lista */
void visualizar();
void guardar();
void agregar(void);/*pide los datos del registro nuevo*/
void guardar(char *fname); /* guarda la lista en el archivo */
void menu(char *fname);/* menu para crear,listar y eliminar registros */
void buscar();
void categoria();
void elimina(struct datos *aux);
void salir();
void menu_prin(void); /* menu principal crear o cargar archivo */
void carga(char *fname); /* lee el archivo y crea la lista enlazada si existen registros guardados */
void cargar(int clave); /* menu en donde se introduce el nombre de archivo */
/* ------------INSERTA REGISTROS ORDENADAMENTE EN LA LISTA--------------- */
void insertar(struct datos *p )/* nuevo registro a insertar */
{
struct datos *aux;
aux=cabecera;
if (cabecera == NULL) /* insertar el primer registro de una lista */
{
cabecera = p;
cabecera->ant = cabecera;
ultimo = p;
ultimo->sig = cabecera;
}else
for (;;)
{
if ((aux!=NULL && aux->fecha< p->fecha < 0))
{
if (aux == cabecera) /* insertar registro al principio de la lista*/
{
p->sig = aux;
p->ant = ultimo;
aux->ant = p;
cabecera = p;
ultimo->sig = p;
return;
}
else
{
p->ant = aux->ant; /* insertar registros en el medio de la lista */
p->sig = aux;
aux->ant->sig = p;
aux->ant = p;
return;
}
}else
if (aux->sig == cabecera) /* insertar registros al final de la lista*/
{
aux->sig = p;
p->sig = cabecera;
cabecera->ant = p;
p->ant = aux;
ultimo = p;
return;
}
aux = aux->sig;
} /* fin de for(;;) */
} /* fin de la funci¢n */
AYUDA CON FUNCION K ORDENE UNA LISTA ENLZAZADA X EDAD
Moderador: Moderadores