본문 바로가기
C언어

[C언어] 년도와 달을 입력하고 날짜수를 출력하는 프로그램을 작성하시오(switch문을 이용)

by 이얏호이야호 2022. 11. 29.

물론 단번에 코드를 본다면 좋기야 하겠지만 장기적으로 봤을때

혼자풀어보기 -> 힌트 -> 코드보기 순으로 공부하시는게 실력 향상에 큰 도움이 됩니다!

힌트를 보고 천천히 생각을 거쳐서 문제를 풀어보시고

답안을 확인해보세요

 

더보기

년도를 입력

달을 입력

1월 31일

2월 28일

3월 31일

4월 30일

5월 31일

6월 30일

7월 31일

8월 31일

9월 30일

10월 31일

11월 30일

12월 30일

임을 입력하고

윤년의 경우 2월이 29일까지이므로 윤년을 처리하는 if문을 작성한다.

윤년의 조건

1) 4로 나누어 떨어짐과 동시에 100으로 떨어지지 않으면 윤년

2) 400으로 나누어 떨어지면 윤년

두 가지 조건 중 하나만 일치해도 윤년의 조건을 충족한다.

기본틀입니다

윤년2월
윤년의2월
윤년3월
윤년의3월
윤년이 아닌 2월
윤년이 아닌2월

 

#include <stdio.h>
void main()
{
 int y, month, day;
 printf("년도를 입력하고 Enter>");
 scanf("%d", &y);
 printf("달을 입력하고 Enter>");
 scanf("%d", &month);
 switch(month)				//switch문에 입력
 {
 case 1 : break;			//1월은31일까지
 case 2 : break;			//2월은28일까지
 case 3 : break;			//3월은31일까지
 case 4 : break;			//4월은30일까지
 case 5 : break;			//5월은31일까지
 case 6 : break;			//6월은30일까지
 case 7 : break;			//7월은31일까지
 case 8 : break;			//8월은31일까지
 case 9 : break;			//9월은30일까지
 case 10 : break;			//10월은31일까지
 case 11 : break;			//11월은30일까지
 case 12 : break;			//112월은31일까지
 }
if (			)  //(((4로 나누어떨어짐과 동시에 && 100으로 떨어지지 않거나) || 400으로 나누어떨어지면) && month가 2월이면)
 day=29;					//윤년으로 day를 29일로 바꾼다
 printf("%d년의 %d월달은 날짜수가 %d입니다.\n", y,month, day);	//출력
}

 

 

 

더보기
윤년2월
윤년의2월
윤년3월
윤년의3월
윤년이 아닌 2월
윤년이 아닌2월
#include <stdio.h>
void main()
{
 int y, month, day;
 printf("년도를 입력하고 Enter>");
 scanf("%d", &y);
 printf("달을 입력하고 Enter>");
 scanf("%d", &month);
 switch(month)				//switch문에 입력
 {
 case 1 : day=31; break;			//1월은31일까지
 case 2 : day=28; break;			//2월은28일까지
 case 3 : day=31; break;			//3월은31일까지
 case 4 : day=30; break;			//4월은30일까지
 case 5 : day=31; break;			//5월은31일까지
 case 6 : day=30; break;			//6월은30일까지
 case 7 : day=31; break;			//7월은31일까지
 case 8 : day=31; break;			//8월은31일까지
 case 9 : day=30; break;			//9월은30일까지
 case 10 : day=31; break;			//10월은31일까지
 case 11 : day=30; break;			//11월은30일까지
 case 12 : day=31; break;			//112월은31일까지
 }
if (((y % 4 ==0 && y %100 !=0) || y % 400 == 0)&& month==2){  //((4로 나누어떨어짐과 동시에 && 100으로 떨어지지 않거나) || 400으로 나누어떨어지면) && month가 2월이면
  day = 29;					//윤년으로 day를 29일로 바꾼다
}
 printf("%d년의 %d월달은 날짜수가 %d입니다.\n", y,month, day);	//출력
}

 

 

 

더 많은 C언어 글이 궁금하다면?

https://chuinggun.tistory.com/category/C%EC%96%B8%EC%96%B4

 

댓글