viernes, 19 de diciembre de 2008

Función en C que dice si un año es bisiesto

Segun wikipedia, un año es bisiesto si es divisible por 4, excepto el último de cada siglo (aquellos divisibles por 100), que para ser bisiestos, también deben ser divisibles por 400.

En C, para saber si un numero es divisible por otro, usamos el operador modulo %, que nos da el residuo de la division entera de dos numeros. Un numero es divisible por otro si el residuo de la division entera es cero, es decir
n divide a m si y solo si m%n==0

Entonces, las tres ondiciones que debemos checar son
a%4==0 y ((a%100!=0) o (a%400==0))
donde a es el año

En C queda:
if((a%4==0) && ((a%100!=0)||(a%400==0)))
printf("el año es bisiesto");
else
printf("el año NO es bisiesto");


El ejemplo completo ya con una funcion que determina si un año es bisiesto o no es este:
[sourcecode language='cpp']#include

int bisiesto(int a)
{
/*funcion que regresa 1 si el anio a es bisiesto y
0 si no*/
return((a%4==0) && ((a%100!=0)||(a%400==0)));
}

int main(void)
{
int a;
printf("dame un a\xA4o:");
scanf("%d",&a);
if(bisiesto(a))
printf("%d es bisiesto",a);
else
printf("%d no es bisiesto",a);
return 0;
}[/sourcecode]

No hay comentarios:

Publicar un comentario