언어 자료구조 알고리즘/C언어 예제

[C언어 소스] 년도와 일수 입력받아 시각 출력

언제나휴일 2016. 4. 3. 12:14
반응형

[C언어 소스] 년도와 일수 입력받아 시각 출력



7. 년도와 일수 입력받아 시각출력.c


시각(년도, 일수)

월별 일수:={ 31,28,31,30,31,30,31,31,30,31,30,31};

조건(year is 윤년)

    2월 달 일수:=29

반복(일수>월별일수[])

    일수:= 일수 - 월별일수[]

시각 출력

 

소스코드

//7. 년도와 일수 입력받아 시각 출력

 

#include <stdio.h>

void date(int year, int day);//년도와 일수를 입력하면 년월일 출력

 

int main(void)

{

    int year, day;

    printf("년도와 일수 입력(:2016 102): ");

    scanf_s("%d %d", &year, &day);

    date(year, day); //year day를 입력인자로 전달하여 일 수를 출력

    return 0;

}

 

void date(int year, int day)

{

    int mdays[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };

    int month;

    int mday = day;//mday day로 설정

    if ((year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0)))//윤년 판단

    {

        mdays[1] = 29;//2월달의 날 수를 29로 설정

    }

    for (month = 0; mday>mdays[month]; month++)//mday mdays[month]보다 크면

    {

        mday -= mdays[month];//mday mdays[month]를 빼줍니다.

    }

    //month mdays의 인덱스로 사용해서 실제 출력할 때는 1을더해서 출력합니다.

    printf("%d년도의 %d번째 날은 %d %d일입니다.\n", year, day, month + 1, mday);

}

반응형