error en un programa de fechas

gurris
11 de Agosto del 2005


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