이해가 잘안되네요 좀 도와주세요
라
질문 제목 : 윤달 좀 도와주세요
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;/
}
*/
현재는 여기서 막혀있습니다....
좀 도와주세요
-
너의길
year%4 == 0 /* 4로 나눠 떨어진다.*/ && /*그러면서*/ year%100 != 0 /*100으로는 안 나눠 떨어진다.*/
|| /*이 앞의 것이 참이어도 1을 출력하고 이 뒤의 것이 참이어도 1을 출력한다.*/
year%400 == 0 /*400으로 나눠 떨어지면 1을 출력한다.*/
이해 안 되시나요? -
큰길
답변 정말 감사드려요
정말 죄송한데 시간나실때 자세히 설명좀 해주세요;;; -
파이팅
네 저것을 해석하면요
연도가 100으로 안 나눠 떨어지거나 400으로 나눠 떨어지면서 4로 나눠 떨어지는 연도일때 1을 출력하라 거든요?
제가 직접 실행해 보니까 되네요 -
큰돛
갈호 안 쳐줘도 되는군요
-
비내리던날
이렇게 하면 가능한가요??
몇일전부터 이것만 붙잡고있는데 잘안되네요.....
좀 도와주세요 -
알프레드
return (year%4==0 && (year%100!=0 || year%400==0)) 이렇게 갈호를 쳐줘야 할듯한데요?
-
궁수자리
return (year%4==0 && year%100!=0 || year%400==0)