1.4년에 한번씩 윤년
2.4년으로 나눠떨어져도 100으로 나눠떨어지면 윤년아님.
3.100으로 나눠떨어져도 400으로 나눠떨어지면 윤년임.
int IsLeapYear(int year) {
int isLeapYear;
isLeapYear = (year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0));
}
메인(){
printf("2000=%d, 2012=%d, 2015=%d \n", IsLeapYear(2000), IsLeapYear(2012), IsLeapYear(2015));
}
이거 돌리면 2000은 5, 2012는 20, 2015는 5나오던데
뭐가 문제임??
year가 2000일경우에
(year@0==0)은 1이고
((year % 4 == 0) && (year % 100 != 0))은 1&&0이어서 0이라
0 || 1하면 1되는데
왜 5가 나오는거지
논리연산자가 항상 1과 0만 반환하지는 않음?
윤달이 아니고 윤년