사용자에게 몇년 몇월 몇일인지를 입력받아,


 1년 1월 1일부터 몇일이 지났는지를 구하고, 윤년인지 아닌지를 구하는 프로그램


ex) 


날짜를 입력하세요... yyyy mm dd


yyyy년 mm월 dd일은 *****번째 날이고 #요일이면서 윤년입니다.


=====================================


#include <stdio.h>

int main()

{


int days[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 }; // 일 배열


int year,month,day=0,yun= 0,hapyear=0; // 년, 월,일,윤년 여부 변수 선언


printf("년 : "); // 년 입력


scanf("%d", &year);


printf("월 : "); // 월 입력


scanf("%d", &month);


if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { // 윤년 공식


yun = 1; // 만약 윤년이면 yun=1


}

if (month == 2 && yun == 1) // 월이 2월이고 , 윤년이라면

{

printf("일 (29일) : ");  // 일 입력

scanf("%d", &day);

}


else {

printf("일 (28일) : "); // 아니라면 그냥 일 입력

scanf("%d", &day);

}


if (1 <= month && month <= 12) { // month가 1월~12월 이고, day가 1~31일 안에 있을 때,

if (yun == 1)

{

printf("**윤년**\n\n");

printf("%d년 %d월 %d일은 \n", year, month, day); // 년 월 일 출력

}

else

{

printf("**평년**\n\n");

printf("%d년 %d월 %d일은 \n", year, month, day); // 년 월 일 출력

}

}

else {

printf("조건에 맞지 않습니다. 다시 입력해주세요.\n"); // 아니라면 재귀함수

main();

}


hapyear = (int)((year - 1)*365.2422 + (month - 1)*(365.2422 / 12) + day)-1; // 지난 일수 공식


// 2000년 5월 5일 입력시 1년 1월 1일부터 시작이므로 2000년 까지는 1999년이 지남 따라서 1999 * 365.2422

// 365.2422/12 = 1달기간이므로 입력한 달 전 달까지 4개월 치 계산 후 나머지 일을 더한다.



weeks(year,month,day,hapyear); // weeks 함수에 년 월 일 인자값


printf("1년 1월 1일 로부터 %d일 지났습니다.\n",hapyear+1); // 지난 일수 출력

}


int weeks(int year, int month, int day,int hapyear) // 년 월 일 인자값으로 받음


{


switch (hapyear % 7)

{

case 0: printf("월요일 이고,"); break;


case 1: printf("화요일 이고, "); break;


case 2: printf("수요일 이고,"); break;


case 3: printf("목요일 이고,"); break;


case 4: printf("금요일 이고,"); break;


case 5: printf("토요일 이고,"); break;


case 6: printf("일요일 이고,"); break;

}


return 0;

}


'IT > Programing' 카테고리의 다른 글

Dovelet / 여왕 벌/bumblebee  (0) 2016.04.03
프로그램 명: bumblebee
제한시간: 1 초

두 기차 A,B 가 l m 의 거리를 두고 있는 상태에서 여왕벌이 기차 A 에 앉았다가 날아올랐다. 기차 A 는 a m/s 로 기차 B 를 향해 달리고 , 기차 B 는 b m/s 로 기차 A 를 향해 달린다.

여왕벌은 기차 A 에서 기차 B 까지 x m/s 로 날아가다가 기차 B 와 부딪히기 직전 기차 A 를 향해 방향을 바꿔 x m/s 로 날아가고 다시 기차 A 와 부딪히기 직전 기차 B 를 향해 바꿔 날기를 반복한다. 그러다가 기차 A,B 는 부딪히고 여왕벌은 죽는다.

우리의 목표는 a,b,x,l 이 주어질 때 여왕벌이 두 기차 A,B 가 부딪히기 직전까지 날아다닌 거리를 구해야 한다.

입력

a,b,x,l ( 1 <= a, b < x < l <= 40000) 이 순서대로 주어지며 , 네 수는 모두 정수이다.

출력

여왕벌이 두 기차 A,B 가 부딪히기 직전까지 날아다닌 거리를 m 단위로 소수점 6 번째 자리까지 출력한다.

입출력 예

입력

2 3 6 10

출력

12.0000000

입력

3 4 9 10

출력

12.857143
추천: cube

링크 : http://59.23.113.171/30stair/bumblebee/bumblebee.php?pname=bumblebee

=======================


#include <stdio.h>


int main() {


float a, b, x, l; // 변수 선언


scanf("%f %f %f %f", &a, &b, &x, &l);


printf("%.6f\n", (float)l / (a + b) * x);



}


/*


두 기차 사이 거리 / ( 두 기차의 속력 ) * 벌의 속력


두 기차 사이 거리 / ( 두 기차의 속력 ) = 벌이 날아다닌 시간


벌이 날아 다닌 시간 * 벌의 속력 = 벌이 이동한 거리

*/

'IT > Programing' 카테고리의 다른 글

Critical / 윤 년 / Yun_year  (0) 2016.04.03

+ Recent posts