C語(yǔ)言實(shí)現(xiàn)萬(wàn)年歷小功能
本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)萬(wàn)年歷的具體代碼,供大家參考,具體內(nèi)容如下
一、學(xué)了C語(yǔ)言,相信大家都可以做出來(lái)。我們要實(shí)現(xiàn)的就是用戶輸入年,月,日。然后打印出來(lái)。
二、需要用到的知識(shí)點(diǎn)
1.for循環(huán)。2.if判斷。3.函數(shù)的調(diào)用
如果您們學(xué)了圖形庫(kù)的話,可以貼圖上去,效果更加好看。我沒(méi)有素材,所以,直接用C語(yǔ)言來(lái)完成。
三、運(yùn)行結(jié)果
四、我們用C語(yǔ)言代碼實(shí)現(xiàn)
/************************************************************************ * 項(xiàng)目名稱:萬(wàn)年歷 * 項(xiàng)目描述:算法,判斷 * 項(xiàng)目環(huán)境:VS2013 * 生成日期:2020-3-8 * 作者所屬:追夢(mèng) *************************************************************************/ #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萬(wàn)年歷\t\n"); printStar(); for (int i = 0; i < 7; i++)//打印星期 { printf("%s\t", weekday[i]); } printf("\n"); } //打印下面的日期,判斷當(dāng)前年份是平年還是閏年 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;//平年 } //計(jì)算year離1900年有多少天 int daySum(int year,int month,int day,int run[],int ping[]) { //參照物1900-1-1-星期一(百度) int i, sum = 0; //計(jì)算年份天數(shù),閏年+366,平年+365 for( i = 1900; i < year;i++) { if (leap(i) == 1) sum += 366; else sum += 365; } for (i = 0; i < month-1; i++)//計(jì)算月份的天數(shù) { 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;//前面的空格就是余數(shù)---->0-6 //當(dāng)前月份空余的天數(shù),空格表示 for ( i = 0; i < result; i++) { printf("\t"); } temp = 7 - result;//開(kāi)始打印1號(hào) if (leap(year) == 1) { //數(shù)組下標(biāo)是從0開(kāi)始,月份從一號(hào)開(kāi)始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("請(qǐng)輸入年 月 日:"); scanf("%d%d%d", &year, &month, &day); int sum = daySum(year, month, day, run, ping); printBegin(); printData(sum, year, month); system("pause"); return 0; }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單通訊錄管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07圖解C++的STL之stack和queue,輕松理解數(shù)據(jù)結(jié)構(gòu)
聚焦?C++?的?STL?中的?stack?和?queue,讓數(shù)據(jù)結(jié)構(gòu)變得簡(jiǎn)單有趣!?通過(guò)圖解的方式,我們將輕松理解這兩個(gè)重要的數(shù)據(jù)結(jié)構(gòu),準(zhǔn)備好開(kāi)啟?STL?學(xué)習(xí)之旅了嗎?讓我們一起探索?stack?和?queue?的奧秘吧!2024-03-03C++ OpenCV制作黑客帝國(guó)風(fēng)格的照片
這篇文章主要介紹了如何通過(guò)C++ OpenCV制作出黑客帝國(guó)風(fēng)格的照片,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)OpenCV有一定幫助,需要的可以參考一下2022-01-01FFmpeg實(shí)現(xiàn)變速播放的兩種方法總結(jié)
這篇文章主要為大家詳細(xì)介紹了FFmpeg中實(shí)現(xiàn)變速播放的兩種方法,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的可以了解一下2023-07-07C語(yǔ)言詳細(xì)分析講解內(nèi)存管理malloc realloc free calloc函數(shù)的使用
C語(yǔ)言內(nèi)存管理相關(guān)的函數(shù)主要有realloc、calloc、malloc、free等,下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言內(nèi)存管理realloc、calloc、malloc、free函數(shù)的相關(guān)資料,需要的朋友可以參考下2022-05-05C語(yǔ)言數(shù)據(jù)類型枚舉enum全面詳解示例教程
生活中有很多地方會(huì)用到枚舉,比如一周有7天,可以一一枚舉;性別有男、女...等等都可以可以一一枚舉,今天來(lái)和筆者一起學(xué)習(xí)一下c語(yǔ)言枚舉吧2021-10-10C++實(shí)現(xiàn)字符串元音字母反轉(zhuǎn)的兩種方法
在處理字符串問(wèn)題時(shí),我們經(jīng)常需要對(duì)其中的字符進(jìn)行操作,例如反轉(zhuǎn)、替換等,本文將詳細(xì)討論如何在C++中實(shí)現(xiàn)僅反轉(zhuǎn)字符串中的所有元音字母,并返回結(jié)果字符串,需要的朋友可以參考下2024-07-07