switch 문 대신에 다른 것을 사용하는 방법
지지않는
질문 제목 : switch 문 대신에 다른 것을 사용하는 방법도대체 switch 문을 사용하지 않고 몇년 몇월입니다를 나타내는 방법은 무엇인가요..
if 문을 사용한다면 어떻게 하나요?질문 내용 :
#include stdio.h //printf() 의 이용을 위한 헤더 파일 포함
int main(void)
{
int year = 0, month = 0, maxday = 30, validinput = 0;
printf(년과 월을 다음과 같이 입력하면 그 달의 말일을 알려드립니다.\n);
printf(2003 2 : 입력 );
scanf(%d %d, &year, &month);
if (month == 1, 3, 5, 7, 8, 10, 12)
{maxday = 31; validinput = 1;}
else if (month == 4, 6, 9, 11)
{maxday = 30;
validinput = 1;}
else if (month == 2)
{if ((year%4 == 0) && (year%100 != 0) || (year%400 == 0))
maxday = 29;
else
maxday = 28;
validinput = 1;
}
else
validinput = 0;
if (validinput)
printf(%d년 %d월의 말일은 %d일 입니다.\n, year, month, maxday);
else
printf(입력이 잘못되었습니다.\n);
return 0;
}
이렇게 써봣는데 몇년은 제대로 나타나지만 그외 것들은 제대로 나타나지 않네요
밑에 switch 문을 사용했을 때입니다.
#include stdio.h //printf() 의 이용을 위한 헤더 파일 포함
int main(void)
{
int year = 0, month = 0, maxday = 30, validinput = 0;
printf(년과 월을 다음과 같이 입력하면 그 달의 말일을 알려드립니다.\n);
printf(2003 2 : 입력 );
scanf(%d %d, &year, &month);
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
maxday = 31;
validinput = 1;
break;
case 4:
case 6:
case 9:
case 11:
maxday = 30;
validinput = 1;
break;
case 2:
if ((year%4 == 0) && (year%100 != 0) || (year%400 == 0))
maxday = 29;
else
maxday = 28;
validinput = 1;
break;
default:
validinput = 0;
}
if (validinput)
printf(%d년 %d월의 말일은 %d일 입니다.\n, year, month, maxday);
else
printf(입력이 잘못되었습니다.\n);
return 0;
}
-
휑하니
잘 돌아가는 데요? 2008에서 실행했습니다.