조건문 part
<오답>
#include<stdio.h>
int main(void)
{
int Y;
scanf("%d", &Y);
if ((Y % 4 == 0) && (Y % 100 != 0))
printf("%d", 1);
if ((Y % 4 == 0) && (Y % 400 == 0))
printf("%d", 1);
if (Y % 4 != 0)
printf("%d", 0);
return 0;
}
지문 상의 조건을 쪼개어 구성하였는데, 대표적인 예외 숫자 하나를 대자면, 1900이라는 숫자이고 아무 출력 값이 나오지 않는다. 그러므로 틀린 코드이다.
<정답 코드>
#include<stdio.h>
int main(void)
{
int Y;
scanf("%d", &Y);
if ((Y % 4 == 0) && (Y % 100 != 0)||(Y % 4 == 0) && (Y % 400 == 0))
printf("%d", 1);
else
printf("0");
return 0;
}
문제의 조건을 한 문장에 다 담았고 예외의 경우가 존재하지 않아, 출력이 정상적으로 됨을 볼 수 있었다.