中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言實現萬年歷小功能的方法

發布時間:2021-04-17 15:03:20 來源:億速云 閱讀:416 作者:小新 欄目:編程語言

小編給大家分享一下C語言實現萬年歷小功能的方法,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

具體內容如下

一、學了C語言,相信大家都可以做出來。我們要實現的就是用戶輸入年,月,日。然后打印出來。

二、需要用到的知識點

1.for循環。2.if判斷。3.函數的調用

如果您們學了圖形庫的話,可以貼圖上去,效果更加好看。我沒有素材,所以,直接用C語言來完成。

三、運行結果

C語言實現萬年歷小功能的方法

四、我們用C語言代碼實現

/************************************************************************
*        項目名稱:萬年歷
*        項目描述:算法,判斷
*        項目環境:VS2013
*        生成日期:2020-3-8
*        作者所屬:追夢
*************************************************************************/
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
int year, month, day;
int run[12] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };//閏年
int ping[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };//平年
char weekday[7][10] = { "一", "二", "三", "四", "五", "六", "日" };//星期
void printStar()//打印
{
 printf("**************************************************\n");
}
void printBegin()//打印抬頭
{
 printf("\t\t萬年歷\t\n");
 printStar();
 for (int i = 0; i < 7; i++)//打印星期
 {
 printf("%s\t", weekday[i]);
 }
 printf("\n");
}
//打印下面的日期,判斷當前年份是平年還是閏年
int leap(int year)
{
 if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)//閏年
 return 1;
 else if (year % 4 == 0 && year % 100 != 0 && year % 400 == 0)//閏年
 return 1;
 else
 return 0;//平年
}
//計算year離1900年有多少天
int daySum(int year,int month,int day,int run[],int ping[])
{
 //參照物1900-1-1-星期一(百度)
 int i, sum = 0;
 //計算年份天數,閏年+366,平年+365
 for( i = 1900; i < year;i++)
 {
 if (leap(i) == 1)
  sum += 366;
 else
  sum += 365;
 }
 
 for (i = 0; i < month-1; i++)//計算月份的天數
 {
 if (leap(year) == 1)
  sum += run[i];
 else
  sum += ping[i];
 }
 return sum;
}
//打印日歷
void printData(int sum, int year, int month)
{
 int result, temp, i; //result空格
 result = sum % 7;//前面的空格就是余數---->0-6
 //當前月份空余的天數,空格表示
 for ( i = 0; i < result; i++)
 {
 printf("\t");
 }
 temp = 7 - result;//開始打印1號
 if (leap(year) == 1)
 {
 //數組下標是從0開始,月份從一號開始i=1
 for (i = 1; i <= run[month - 1]; i++)
 {
  printf("%d\t", i);
  if (i == temp || (i - temp) % 7 == 0)//換行
  printf("\n");
 }
 printf("\n");
 }
 else
 {
 for (i = 1; i <= ping[month - 1]; i++)
 {
  printf("%d\t", i);
  if (i == temp || (i - temp) % 7 == 0)//換行
  printf("\n");
 }
 printf("\n");
 }
}
int main()
{
 system("color 2f");//改變黑窗口的顏色
 printf("請輸入年 月 日:");
 scanf("%d%d%d", &year, &month, &day);
 int sum = daySum(year, month, day, run, ping);
 printBegin();
 printData(sum, year, month);
 
 system("pause");
 return 0;
}

看完了這篇文章,相信你對“C語言實現萬年歷小功能的方法”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大庆市| 田林县| 祥云县| 综艺| 黔西| 明星| 安岳县| 三江| 喜德县| 独山县| 龙岩市| 龙泉市| 紫云| 娄底市| 和林格尔县| 搜索| 如东县| 林周县| 杭锦后旗| 南岸区| 霞浦县| 遵义市| 肃南| 台安县| 古丈县| 大姚县| 金昌市| 福鼎市| 常山县| 扎赉特旗| 珲春市| 来安县| 海丰县| 梓潼县| 漳浦县| 抚顺市| 仲巴县| 淮北市| 体育| 鄄城县| 丰镇市|