hola tengo un problema con el ejericio 104 mi codigo es el siguiente:
Si lo probais verias k si poneis 2003 como es logico no es bisiesto pero si ponemos 2004 si es bisiesto, de momento todo bien, pero y si pongo 2000? me dice que no es bisiesto pero si lo es.. y en vuestro codigo publicado en soluciones c pasa lo mismo.. se puede arreglar o es k 2000 es un año especial?
Código [Seleccionar]
/* Ejercicio 104
Escribir un programa que solicite un año e indique si es bisiesto o no
Un año es bisiesto si es múltiplo de 4 excluyendo aquellos que son múltiplo de 100 y no de 400.
- Los años exactamente divisibles entre 4 son años bisiestos.
- Los años exactamente divisibles entre 100 no son años bisiestos.
- Los años exactamente divisibles entre 400 sí son años bisiestos.
*/
#include <stdio.h>
int num;
int resto;
main()
{
printf("Escriba un año y le dire si es bisiesto o no: ");
fflush(stdin);
scanf("%d",&num);
if (num>1 && num<20000)
{
resto = num%4;
if(resto == 0 && num%100 != 0)
printf("El año es bisiesto");
else if(num%100 == 0 && num%400 != 0)
printf("El año no es bisiesto");
else
printf("El año no es bisiesto");
}
else
{
printf("Introduzca un numero razonable");
}
getchar();
getchar();
}
Si lo probais verias k si poneis 2003 como es logico no es bisiesto pero si ponemos 2004 si es bisiesto, de momento todo bien, pero y si pongo 2000? me dice que no es bisiesto pero si lo es.. y en vuestro codigo publicado en soluciones c pasa lo mismo.. se puede arreglar o es k 2000 es un año especial?