精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
輸入年份和月份,輸出該月日歷,復雜問題的分解

 

5.            輸入年份和月份,輸出該月日歷,復雜問題的分解

 

/*輸入年份和月份,輸出該月月歷*/

#include <stdio.h>

/*聲明函數GetWeekDay求某年某月某日是星期幾*/

int GetWeekDay(int,int,int);

/*聲明函數GetMonthDays求某年某月共有幾天*/

int GetMonthDays(int,int);

/*聲明函數PrintMonthCalender打印某月日歷*/

int PrintMonthCalender(int,int);

/*聲明函數CheckLeap判斷某年是否是閏年*/

int CheckLeap(int);

main()

{

       /*定義變量,startDay為要求月的第一天的星期數,

        *days為要求月的天數

        */

       int year,month,startDay,days;

       printf("input the year and month(YYYY-MM):");

       scanf("%d-%d",&year,&month);

       printf("\n\t\t\t%d-%d\n",year,month);

       /*引用函數GetWeekDay求要求月的首天是星期幾*/

       startDay=GetWeekDay(year,month,1);

       /*引用函數GetMonthDays求要求月有多少天*/

       days=GetMonthDays(year,month);

       PrintMonthCalender(startDay,days);

       return(0);

}

/*定義函數GetWeekDay求某年某月某日是星期幾*/

int GetWeekDay(int year,int month,int day)

{

       /*定義變量,days是從000111算起的天數,

        *weekday是星期數,i是控制月份的變量

        */

       int days,weekday,i;

       days=year*365+year/400+year/4-year/100;

       /*計算從000111到該月為止的天數*/

       for(i=12;i>=month;i--)

              days=days-GetMonthDays(year,i);

       /*計算從000111到該天為止的天數*/

       days=days+day;

       /*計算該天的星期數*/

       weekday=days%7;

       return weekday;

}

/*定義函數GetMonthDays求某年某月共有幾天*/

int GetMonthDays(int year,int month)

{

       /*對天數不同的月份分開討論*/

       if(month==4||month==6||month==9||month==11)

              return 30;

       else

       {

              /*單獨對二月的討論*/

              if(month==2)

              {

                     /*對閏年的判斷*/

                     if(CheckLeap(year))

                            return 29;

                     else

                            return 28;

              }

              else

                     return 31;

       }

}

/*定義函數PrintMonthCalender打印某月日歷*/

int PrintMonthCalender(int startDay,int days)

{

       int num,count;

       num=-startDay;

       printf("\nSun.\tMon.\tTue.\tWed.\tThu.\tFri.\tSat.\n");

       /*控制輸出的天數*/

       while(num<=days)

       {

              printf("\n");

              /*對一個星期七天的控制*/

              for(count=1;count<=7;count++)

              {

                     num=num+1;

                     /*控制輸出的天數*/

                     if(num>=1&&num<=days)

                            printf("%d\t",num);

                     else

                            printf("\t");

              }

       }

       printf("\n");

}

/*定義函數CheckLeap判斷某年是否是閏年*/

int CheckLeap(int year)

{

       if((year%4==0&&year%100!=0)||(year%400==0))

              return 1;

       else

              return 0;

}

運行效果如圖:
本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
計算某天是星期幾【C代碼】
用c語言寫一個函數把十進制轉換成十六進制
十進制數轉化成相應的二、八、十六或其它進制
實現整數轉化為字符串函數itoa()函數
c語言例題
c語言結構體和共用體1.有5個學生,每個學生的數據包括學號、姓名、3門課的成績,從鍵盤輸入5個學生數據
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 清流县| 隆昌县| 绥中县| 察隅县| 疏勒县| 枣强县| 西昌市| 瑞昌市| 洛扎县| 平远县| 达尔| 德昌县| 兴化市| 九龙坡区| 科技| 大理市| 五台县| 邻水| 历史| 遵义市| 阿鲁科尔沁旗| 体育| 紫阳县| 晋城| 洛浦县| 东阿县| 晋州市| 昌都县| 永和县| 仲巴县| 三都| 临沭县| 东安县| 平昌县| 广昌县| 博罗县| 专栏| 海伦市| 邯郸市| 张家界市| 枣庄市|