ayuda con este programa

Iniciado por luis9829, 17 Julio 2017, 02:36 AM

0 Miembros y 1 Visitante están viendo este tema.

luis9829

veran hasta ahi tengo el programa que ingrese los datos tanto del dni fecha de nacimiento y por ultimo el sexo
ahora el problema esq se ingresen datos reales el dni por ejemplo tiene 8 numeros y una letra al final la fecha debe existir como tal en el calendario y el sexo tiene que ser entre masculino o femenino no se como hacer las validaciones correspondientes se que es con funciones y ya lo e intentado pero no me ha funcionado

#include <stdio.h>
#define DIM 5
typedef struct{
   int dia,mes,year;
}tfecha;
typedef struct{
   int num;
   char letra;
} tdni;
typedef struct{
   tdni dni;
   tfecha fecha01;
   char genero;
}tpersona;
int main(){
   tpersona pers,joven,adulto;
   int i;
   tfecha vfechas[DIM];
   int j,aux,numdias;
   joven.dni.num=-1;
   adulto.dni.num=-1;
   for(i=0;i<=DIM;i++){
       printf("digite el dni de la persona:%d\n", i);
       scanf("%d%c", &pers.dni.num,&pers.dni.letra);
       printf("digite la fecha de nacimiento de la persona en el formato (dd/mm/aa):%d\n",i);
       scanf("%d%*c%d%*c%d%*c",&pers.fecha01.dia,&pers.fecha01.mes,&pers.fecha01.year);
       printf("digite el sexo (m/f):%d\n",i);
       scanf("%c",&pers.genero);
   }
   return 0;
}

ejemplo de ejecucion
ingrese dni 88888888t
fecha 25/67/2998
fecha mal ingresada por favor digite de nuevo
fecha 23/07/1998
sexo m
asi deberia ser ya con las respectivas validaciones


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex

Zune528

Pordria funcionarte utilizar expresiones regulares para analizar la cadena ingresada en el caso del DNI, la otra validacion sale con un If-Else.

luis9829

osea si pero el tema de funciones la verdad que no se me da muy bien me podrian explicar con un ejemplo al menos una validacion de los 3 items yo creo q el del genero esta mas facil de validar por que el de la fecha toca ver ciertas comprobaciones si es bisiesto cuanto dias tiene el mes y todo eso