邯鄲網(wǎng)站設(shè)計哪家好好省推廣100種方法
提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔
文章目錄
- 前言
- 一、打印月歷
- 二、實現(xiàn)代碼
- 三、運(yùn)行結(jié)果
- 總結(jié)
前言
設(shè)計程序,實現(xiàn)年、月由用戶輸入,輸出一個如下形式的閏年日歷:
.
(提示:
可按公式 iWeek = ((c/4)-2*c+y+(y/4)+(26*(iMonth+1)/10)+iDay-1)%7
將年(iYear)/月(iMonth)/日(iDay)換算成星期(iWeek)。
公式中,
c=iYear/100, c>15;y=iYear%100;
當(dāng) iMonth為1時,iYear 改為 iYear-1,iMonth 改為 13;
當(dāng) iMonth為2時,iYear 改為 iYear-1,iMonth 改為 14;
當(dāng) iWeek<0時,iWeek 改為 iWeek+7;
iWeek 為 0 表示星期日)
?
2.實現(xiàn)代碼
代碼如下(示例):
#include<stdio.h>int n,c,y,iWeek,iYear,iDay,iMonth,maxday,j;int main(){scanf("%d %d",&iYear,&iMonth);printf("日 ?一 ?二 ?三 ?四 ?五 ?六\n");switch(iMonth){case 4:maxday = 30;break;case 6:maxday = 30;break;case 9:maxday = 30;break;case 11:maxday = 30;break;case 2:if(iYear%4==0&&iYear%100!=0){maxday = 29;}else{maxday = 28;}break;default:maxday= 31;break;}//計算當(dāng)月yihaoc = iYear/100;y = iYear%100;iDay = 1;iWeek = ((c/4)-2*c+y+(y/4)+(26*(iMonth+1)/10)+iDay-1)%7;if(iWeek<0){iWeek+=7;}int i;for(i=0;i<iWeek;i++){printf("%2s ?"," ");//iweek前面放空格?}for(i=iWeek;i<=6;i++){printf("%2d ?",++j);if(i==6){i = -1;printf("\n");}if(j>=maxday){break;}}return 0;
})
三、運(yùn)行結(jié)果
2022 10
日 ?一 ?二 ?三 ?四 ?五 ?六
? ? ? ? ? ? ? ? ? ? ? ? ?1
?2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8
?9 ?10 ?11 ?12 ?13 ?14 ?15
16 ?17 ?18 ?19 ?20 ?21 ?22
23 ?24 ?25 ?26 ?27 ?28 ?29
30 ?31
總結(jié)
熟悉掌握Switch--case用法、循環(huán)嵌套