error en un programa de fechas
Hola a todos llevo unos dias con este programa y no consigo quitar todos
los errores.
Consiste en la creacion, modificacion, eliminacion y la recuperacion del
mes de una fecha(dd/mm/aaaa), es sencillo lo se pero no hace mas que darme
errores que no consigo corregir una manita por favor, gracias.
El compilador que uso es el Dev-c++
Este es el codigo que tengo:
#include <stdio.h>
struct fecha{
int dia;
int mes;
int anno;
};
void main();
int menu();
void crear();
void modificar();
int recuperar();
void validar(struct fecha);
void main(){
int mn;
do
{
mn=menu();
switch (mn) {
case 1:
crear();
break;
case 2:
modificar();
break;
case 3:
borrar();
break;
case 4:
recuperar();
break;
} //switch
}while(mn!=5);
printf("ADIOS");
}//main
int menu(){
int op;
while(1)
{
printf("Elija un opcion:n");
printf("1-Crear fechan");
printf("2-Modificar fechan");
printf("3-Borrar fechan");
printf("4-Recuperar mes fechan");
printf("5-Salirn");
scanf("%d",op);
if((op<1)||(op>5))
{
printf("ERROR");
}
else
{
return op;
}
}
}//menu
void crear(){
printf("Introduce una fecha dian");
scanf("%d",fecha.dia);
printf("Introduce una fecha mesn");
scanf("%d",fecha.mes);
printf("Introduce una fecha aƱon");
scanf("%d",fecha.anno);
validar(fecha);
menu();
}//crear
void validar(struct fecha){
int numeroDias=0;
char b[10];
switch (fecha.mes) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
numeroDias=31;
if (dia<1 || dia> 31){
printf("nIncorrecto el mes %d tiene %d dias",fecha.mes,numeroDias);
}
else
{
printf("La fecha %d es correcta",fecha.dia,fecha.mes,fecha.anno);
}
break;
case 4:
case 6:
case 9:
case 11:
numeroDias = 30;
if (dia<1 || dia> 30){
printf("nIncorrecto el mes %d tiene %d dias",fecha.mes,numeroDias);
}
else
{
printf("La fecha %d es correcta",fecha.dia,fecha.mes,fecha.anno);
}
break;
case 2:
if ((ano % 4 == 0) && !(ano % 100 == 0)){// comprobamos si el aƱo es bisiesto
numeroDias = 29;
printf("n El anno es bisisesto");
}
else {
numeroDias = 28;
printf("n El aƱo no es bisiesto");
}
if (dia<1 || dia>numeroDias){
printf("n Incorrecto el mes %d tiene %d dias",fecha.mes,numeroDias);
}
else
{
printf("n La fecha %d es correcta",fecha.dia,fecha.mes,fecha.anno);
}
break;
}//swich
}//validar
void borrar(){
fecha.dia=0;
fecha.mes=0;
fecha.anno=0;
}//borrar
void modificar(){
printf("n La fecha actual es:%d%d%d",fecha.dia,fecha.mes,fecha.anno);
printf("n Introduzca la nueva fecha");
printf("n Introduce una fecha dian");
scanf("%d",fecha.dia);
printf("n Introduce una fecha mesn");
scanf("%d",fecha.mes);
printf("n Introduce una fecha aƱon");
scanf("%d",fecha.anno);
validar(fecha);
}//modificar
int recuperar(){
printf("n El mes de la fecha es:d",fecha.mes);
}//recuperar
