Un año es bisiesto, si es divisible entre 4, excepto si es divisible entre 100 pero no entre 400. ( El codigo te generaba que no era año bisiesto el 2000, porque le faltaba la validación si era divisible entre 400)
Código c++:
Ver originalint year;
if( (year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0) && (year % 4 == 0))
{
}else printf("El año no es bisiesto");