C語言基礎—小實例:三天打漁兩天曬網

——Java培訓、Android培訓、iOS培訓、.Net培訓、期待與您交流! ——-

// 小明從2006年1月1日開始,每三天結識一個美女兩天結識一個帥哥
// 當輸入2006年1月1日之後的任意一天,輸出小明那天是結識美女還是帥哥
#include <stdio.h>
int isleapyear(int);                                            // 聲明子函數,判斷是否爲潤年。
int main()
{
    int year, month, day, days=0;                               // 定義用到的變量。
    printf("請依次輸入2006年1月1日之後的年份、月份、和日期\n");
    scanf("%d%d%d",&year,&month, &day);                         // 輸入年月日。
    int mondays[]={31,28,31,30,31,30,31,31,30,31,30,31};        // 將各月日期數放在數組,二月暫定28天。
    int nyear=year-2006;                                        // 得到年數。
    for( int i=0; i<=nyear; i++)                                // 遍歷每一年。
    {
        if(isleapyear(2006+i) && i!=nyear)                      // 判斷每一年是潤年還是平年。
            days=days+366;                                      // 潤年將總天數加上366天。
        else if( (!isleapyear(2006+i)) && i!=nyear )
            days=days+365;                                      // 平年將總天數加上365天。
        else if(i==nyear)                                       // 判斷是否是最後一年。
        {
            mondays[1]=  isleapyear(2006+i) ? 29: 28 ;          // 判斷最後一年是潤年還是平年。
            for (int j=0 ; j<month-1; j++)
                days=days+mondays[j];                           // 將最後一年每月天數累加。
            days=days+day;                                      // 將最後一年的天數記在總天數內。
        }   
    }
    printf("總天數days=%d\n",days);                                // 輸出總天數。
    int sex=days % (3+2);                                       // 取總天數除以5的餘數。
    switch (sex)                                                // 對餘數進行判斷。
    {
    case 1: case 2: case 3:
            printf("%d年%d月%d日,小明結識的是美眉\n", year, month, day); // 如果是前三天,則結識美女。
            break;
    case 4: case 0:
            printf("%d年%d月%d日,小明結識的是帥鍋\n",year, month, day); // 如果是後兩天,則結識帥哥。
            break;
    }
    return 0;
}

int isleapyear(int year)                                        // 定義判斷是否是潤年的子函數。
{
    if((year%4==0 && year %100 !=0) || year %400==0)            // 能被四整除且不能被100整除,或者能夠被400整除的是潤年。
        return 1;                                               // 返回判斷結果。
    else return 0;
}


發佈了27 篇原創文章 · 獲贊 2 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章