- 년도(year)와 달(month)을 사용자 입력으로 받고, 입력 받은 달의 날짜수를 계산하는 프로그램을 쓰시오. 입력 년도의 윤년(leaf year)인지를 판단해야 하고, enum data type 을 이용하여 JAN, FEB, .. 등의 값을 갖도록 switch 문을 구성하도록 한다. 만약 입력한 달이 1 ~ 12 의 수가 아니면 달을 잘못 입력했다는 문장을 출력하도록 한다.
실행 예)
년도와 월을 입력하시오.>> 2016 2
2016년은 윤년 이고, 2월은 29일입니다.
년도와 월을 입력하시오.>> 2019 5
2019년은 평년 이고, 5월은 31일입니다.
년도와 월을 입력하시오.>> 2019 15
#include<stdio.h>
// 윤년의 여부와 달의 일수 표시를 하는 프로그램
// 2019년 5월 14일 20143537 오범준
int main()
{
int year, input;// 해당 연도 변수는 year로,
// 아래 enum data type으로 month들을 정의했으므로
// input을 통해 각 enum data 에 해당하는
// 숫자를 입력하도록 정의한다.
enum month
{
JAN, FEB, MAR, APR, MAY,
JUN, JUL, AUG, SEP, OCT, NOV, DEC
};// enum data에 swith문을 위한 월들을 정의한다.
printf("년year를 입력하세요 >>");
scanf_s("%d", &year);// year를 입력받는다
printf("월 중에 하나를 입력하세요 >> JAN(1) FEB(2) MAR(3) APR(4) MAY(5) JUN(6) JUL(7) AUG(8) SEP(9) OCT(10) NOV(11) DEC(12)");
scanf_s("%d", &input);// 월을 입력 받는다.
// 윤년이란 4년마다, 그러나 100년 단위일때는 윤년에 해당되지 않도록
// 400년 단위일때는 어떤 상황이든 간에 윤년으로 설정한다.
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))// year 가 윤년인지 아닌지 판별하기 위한 조건문을 세운다.
{
switch (input)
{
case JAN: case MAR: case MAY: case JUL: case AUG: case OCT: case DEC:
printf("%d년은 윤년이고, %d월은 31일 입니다",year,input);
break;
case APR: case JUN: case SEP:case NOV:
printf("%d년은 윤년이고, %d월은 30일 입니다",year,input);
break;
case FEB:
printf("%d년은 윤년이고, %d월은 29일 입니다",year,input);
break;
default:
printf("입력이 잘못되었습니다");
break;
}
}
else
{
switch (input)
{
case JAN: case MAR: case MAY: case JUL: case AUG: case OCT: case DEC:
printf("%d년은 윤년이고, %d월은 31일 입니다",year,input);
break;
case APR: case JUN: case SEP:case NOV:
printf("%d년은 윤년이고, %d월은 30일 입니다",year,input);
break;
case FEB:
printf("%d년은 윤년이고, %d월은 29일 입니다",year,input);
break;
default:
printf("입력이 잘못되었습니다");
break;
}
}
return 0;
}
'C&C++_Basic > C_Condition' 카테고리의 다른 글
C언어 표준입력 max,min 사이 몫 나머지 (0) | 2020.03.20 |
---|---|
C언어 각종 면적, 숫자 출력 (0) | 2020.03.19 |
C언어 종합소득 금액에 따른 세율을 정한 후 과세금액을 계산하여 출력하는 프로그램 (0) | 2020.03.18 |
C언어 열거형 enum 사용 Month 일수 출력 (0) | 2020.03.18 |
C언어 1월 ~ 12월까지의 날짜수를 출력하는 switch 문을 이용하여 만들어 보시오. (0) | 2020.03.18 |