mucha ganas de explicarlo no tengo jeje de ultima si no se entiende un joroca me explico con mas detalle mas tarde..
arch.h
Código
#include <stdio.h> typedef struct FECHA{ int d, m, a; }fecha; typedef struct TIEMPO{ int h, m, s; }tiempo; struct atleta{ char nombre[30]; fecha f; char sx; //sexo char cat; //categoria tiempo t; unsigned int dorsal; unsigned short puesto; }; typedef struct atleta atle; #define desplz(n) (n-1) *sizeof (atle)
archivo de entrada.c
Código
#include <stdio.h> #include <time.h> #include <stdlib.h> #include <ctype.h> #include <string.h> #include "atleta.h" #define randomize (srand(time(NULL))) #define random(num) (rand()%(num)) void inicializar (FILE* pf); void igresar_A (FILE* pf, atle* at); unsigned numdorsal (char s, char cat, FILE * pf); int main(int argc, char** argv) { FILE *pf; atle atletas; char *archivo = "Carrera.dat"; randomize; { return -1; } inicializar(pf); igresar_A(pf, &atletas); do { igresar_A(pf, &atletas); return 0; } void inicializar (FILE* pf) { int i; atle a; a.nombre[0] = '\0'; for (i=0; i<1000; i++) } void igresar_A (FILE* pf, atle* at) { char buf[30]; int n; buf[0]='\0'; if (buf[n] == '\n'); buf[n] = '\0'; { buf[0]='\0'; if (at->f.a < 1954) at->cat = 'V'; else at->cat = 'S'; at->t.h = 0; at->t.m = 0; at->t.s = 0; at->dorsal = numdorsal(at->sx, at->cat, pf); } } unsigned numdorsal (char s, char cat, FILE * pf) { unsigned base, tope, d; atle at; if (s == 'M' && cat=='V') { base = 251; tope = 500; } else if (s == 'M' && cat == 'S') { base = 501; tope = 1000; } else if (s == 'F' && cat == 'V') { base = 51; tope = 100; } else if (s == 'F' && cat == 'S') { base = 101; tope = 200; } d = (unsigned) random(tope+1-base)+base; if (!(*at.nombre)) return d; else return numdorsal(s, cat, pf); }
archivo de entrada a tiempos de atletas.c
Código
#include <stdio.h> #include <time.h> #include <stdlib.h> #include <ctype.h> #include <string.h> #include "atleta.h" void muestraDatos (atle at); void dorsalesjuego (FILE* pf ); int main(int argc, char** argv) { FILE * pf; atle atletas; unsigned dorsal1; char dor[20], *archivo = "Carrera.dat"; { return -1; } dorsalesjuego(pf); while (dorsal1) { if (*atletas.nombre) { muestraDatos(atletas); } else } return 0; } void muestraDatos (atle at) { if (at.t.m > 0) } void dorsalesjuego (FILE* pf ) { atle at; { if (*at.nombre) } }
eso fue todo saludos