日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

打印英文年历C语言函数,C语言打印年历

發布時間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 打印英文年历C语言函数,C语言打印年历 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

voidshow_year(int year)

{inti,j,k,t,n;                           // 用來輔助計數int table[24][21] = {0};                     // 年歷數組int month_day[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; // 每月上限天數if ((0 == year%4 || 0 == year%400) && 0 != year%100)    //閏年檢查,如果是閏年,2月上限天數改為29

{

month_day[2] = 29;

}

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

printf ("%d \n", year);

printf ("******************\n");for (i=0; i<12; i++)                       // 為了使邏輯更加清晰,一次循環只完成一個月的日期填寫,i為當前月份

{n=cal_first(i+1);                     // n為當前月份第一天的星期數,cal_first函數中的月數必須為1~12,for (j=(i/3)*6; j3)*6+6; j++)             // 所以這里傳參時+1,j用來根據月數控制每個月在年歷數組中的第一維坐標

{                                // 坐標(縱坐標)的位置,同樣的,用來根據月數控制每個月在年歷數組中for (k=(i%3)*7; k3)*7+7; k++)          // 第二維坐標(橫坐標)的位置

{

t= (j%6)*7 + k%7 - n + 2;            // t用來臨時記錄當前位置應該填入年歷數組的值,為了簡化邏輯,這里通過if (0 >=t)                     // 數學計算記錄每一個位置應填入的值,(j%6)*7 + k%7計算出的值是本

{                           // 月的第幾個位置,-n+2就會計算出當前格內正確的日期。這樣做會導致得出continue;                    // 負數或0,或炒熟每月天數上限,我們用if + continue將其跳過,這樣

}                           // 不正確的日期就依然是年歷數組初始化時的0if (t <=month_day[i])

{

table[j][k]=t;

}else{continue;

}

}

}

}for (i=0; i<24; i++)                      // 至此,年歷數組已經全部填好,接下來是打印環節,相信已經比較好理解了

{                                 // 每隔6行打印標頭,7列多打印幾個空格,遇到數組中為0則同樣打印空格if (0 ==i)

{

printf ("Jan Feb Mar\n");

printf ("Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun\n");

}if (6 ==i)

{

printf ("Apr May Jun\n");

printf ("Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun\n");

}if (12 ==i)

{

printf ("Jul Agu Sep\n");

printf ("Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun\n");

}if (18 ==i)

{

printf ("Oct Nov Dec\n");

printf ("Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun\n");

}for (j=0; j<21; j++)

{if (7 == j || 14 ==j)

{

printf (" ");

}if (0 ==table[i][j])

{

printf (" ");continue;

}

printf ("%4d", table[i][j]);

}

printf ("\n");

}

}

總結

以上是生活随笔為你收集整理的打印英文年历C语言函数,C语言打印年历的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。