윤달 좀 도와주세요...
새꽃
질문 제목 : 윤달 좀 도와주세요
if문을 쓰면 좋겠는데 if문 쓰지말라고 하네요...질문 내용 :
문제6[관계 및 논리 연산자의 활용]
인자로 전달된 정수에 해당하는 년도가 윤년(2월을 29일로 둔 해)인지 아닌지를 확인하여 윤년인 경우에는 1을, 윤년이 아닌 경우에는 0을 출력하는 함수를 정의하자. 그리고 이 함수의 인자로 2000, 2012, 2015를 전달하여 출력결과를 확인하는 main함수도 정의하자. 참고로 윤년이 되기 위한 조건은 다음과 같다.
∙4로 나누어 떨어지는 년도는 윤년이다.
∙4로 나누어 떨어지지만 100으로도 나누어 떨어지는 년도는 윤년이 아니다.
∙4와 100으로 나누어 떨어지면서 400으로도 나누어 떨어지면 윤년이다.
*힌트: 윤년이 되기 위한 조건은 보기보다 까다롭다. 따라서 구현에 앞서 조건을 정확히 분석해야 하며, 관계 연산자와 논리 연산자는 참의 경우 1을, 거짓의 경우 0을 반환한다는 사실도 활용해야 한다. 그리고 위 조건을 하나의 문장에 모두 담을 수도 있지만 둘 이상의 문장에 나누어 담을 수도 있음을 기억하기 바란다.
if문도 쓰지 말라고하는데 어떻게 해야하죠..
#include stdio.h
int check(int year);
int main(void)
{
printf(2000년은 윤년입니까?\n결과:%d\n,check(2000));
printf(2012년은 윤년입니까?\n결과:%d\n,check(2012));
printf(2015년은 윤년입니까?\n결과:%d\n,check(2015));
}
int check(int year)
{
int check1=year%4;
int convert1=check1==0;
int check2=year%100;
int convert2=check2==1;
int check3=year%400;
int convert3=check3==1;
return check1&&check3;
}
/*
int check(int year)
{
int check1=(year%4);
//int check2=!(year%4) &&year%100;
int check3=!(year%100) && !(year%400);
return check1&&check3;/
}
*/
현재는 여기서 막혀있습니다....
좀 도와주세요