国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C語(yǔ)言實(shí)現(xiàn)萬(wàn)年歷(附代碼) 小白完成的第一個(gè)C語(yǔ)言程序,希望大家多多關(guān)注,點(diǎn)贊

這篇具有很好參考價(jià)值的文章主要介紹了C語(yǔ)言實(shí)現(xiàn)萬(wàn)年歷(附代碼) 小白完成的第一個(gè)C語(yǔ)言程序,希望大家多多關(guān)注,點(diǎn)贊。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

C語(yǔ)言實(shí)現(xiàn)萬(wàn)年歷
前言:本文章向大家介紹如何使用C語(yǔ)言代碼實(shí)現(xiàn)萬(wàn)年歷使用實(shí)例,講解編寫(xiě)萬(wàn)年歷的方法,教你輕松學(xué)會(huì)寫(xiě)出萬(wàn)年歷。這個(gè)小程序算是我自己寫(xiě)的第一個(gè)比較完整的小程序,算是對(duì)大一上學(xué)期學(xué)習(xí)的C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)的一個(gè)總結(jié)

知識(shí)強(qiáng)調(diào)

特別說(shuō)明

各函數(shù)說(shuō)明

1.打印星號(hào)函數(shù)

2.打印日歷抬頭函數(shù)

3.判斷閏年平年函數(shù)

4.計(jì)算總天數(shù)函數(shù)

5.打印日歷函數(shù)

6.main函數(shù)(主函數(shù))

完整代碼

總結(jié)

知識(shí)強(qiáng)調(diào)
1.由于教皇格里戈八世在1582年2月24日頒布法令,永遠(yuǎn)抹去了1582年10月5日到1582年10月14日。所以導(dǎo)致歷史上永遠(yuǎn)不存在這10天。1582年2月24日是星期四,它的第二天是1582年10月5日,這天是星期五。
因此考慮到這十天的影響,所以本篇文章使用1900年1月1日進(jìn)行計(jì)算,這天正好是星期一,便于我們的程序計(jì)算。
2.判斷閏年與平年的方法
閏年:年份數(shù)是4的倍數(shù)但不是100的倍數(shù),或者年份數(shù)是400的倍數(shù)。
平年:除去閏年的年份就都是平年。
3.閏年有366天,平年有365天。閏年的二月有29天,平年的二月有28天。

特別說(shuō)明
1.本文所寫(xiě)的日歷的第一天是從星期一開(kāi)始的,與某些紙質(zhì)日歷從星期日開(kāi)始的不同。
2.本篇文章所寫(xiě)的日歷是某一年某一個(gè)月的日歷,不是完整的年日歷。
如下圖所示萬(wàn)年歷c語(yǔ)言編程代碼,c語(yǔ)言,開(kāi)發(fā)語(yǔ)言
各函數(shù)說(shuō)明
1.打印星號(hào)函數(shù)

void printStar()
{
	printf("*****************************************************\n");	
} 

目的是為了在修飾輸出后的萬(wàn)年歷,使其更加美觀(guān),好看。

2.打印日歷抬頭函數(shù)

char weekday[7][10]={"一","二","三","四","五","六","日"};
void printBegin()
{
	printf("\t\t\t萬(wàn)年歷\t\t\t\n");
	printStar();
	for(int i=0;i<7;i++)
	{
		printf("%s\t",weekday[i]);	
	}
	printf("\n"); 
} 

將日歷的抬頭與封裝在一起,方便輸出周一至周日。

3.判斷閏年平年函數(shù)

int leap(int year)
{
	if(year%4==0&&year%100!=0||year%400==0)
	{
		return 1;
	}
	else
	{
		return 0;
	}
	/*int four,hundred,fourhundred;
	four=year%4;
	hundred=year%100;
	fourhundred=year%400;
	if(four==0&&hundred==0&&fourhundred==0)
	{
		return 1;
	}
	else if(four==0&&hundred!=0&&fourhundred!=0)
	{
		return 1;
	}
	return 0;*/
}

將判斷閏年與平年的函數(shù)封裝成一個(gè)函數(shù),更見(jiàn)方便調(diào)用。在這里,計(jì)算平年與閏年有兩種方法,第二種方法理解起來(lái)有點(diǎn)麻煩。更加希望選擇第一種。

4.計(jì)算總天數(shù)函數(shù)

//1900年1月1日是星期一,比較方便后面的計(jì)算 
//我們需要算我們輸入的年份離1900年有多少天
int  daySum(int year,int month)
{
	//1900 1 1 是星期一
	int i,sum=0;
	for(i=1900;i<year;i++)	
	{
		//判斷當(dāng)前年份是閏年還是平年
		{	
			if(leap(i))
			{
				sum+=366;
			}
			else
			{
				sum+=365;	
			} 
		} 
	}
	for(i=0;i<month-1;i++)//i<month-1是因?yàn)槲覀儾荒軐⑽覀冚斎氲脑路萦?jì)算在內(nèi) 
	{
		if(leap(year)==1)
		{
			sum+=runnian[i];	
		} 
		else
		{
			sum+=pingnian[i];
		}
	}
	return sum;
} 

這個(gè)函數(shù)是計(jì)算我們輸入的月份離1900年1月1日有多少天,方便我們下面計(jì)算。

5.打印日歷函數(shù)

//打印日歷 
void printResult(int sum,int year,int month)
{
	int result,temp,i;//result為余數(shù),temp為中間變量,i為循環(huán)變量
	result=sum%7;//日歷上前面空余的天數(shù),就是總天數(shù)除以7的余數(shù)
	//把當(dāng)前月份空余的天數(shù)用空格表示
	for(i=0;i<result;i++)
	{
		printf("\t");	
	} 
	temp=7-result;//從第幾格開(kāi)始打印一號(hào)
	if(leap(year)==1) 
	{
		//數(shù)組下標(biāo)從0開(kāi)始
		//月份只能從1開(kāi)始 
		for(i=1;i<=runnian[month-1];i++)
		{
			printf("%d\t",i);
			if(i==temp||(i-temp)%7==0)	
			{
				printf("\n");
			}
		}
		printf("\n");	
	} 
	else 
	{
		for(i=1;i<=pingnian[month-1];i++)
		{
			printf("%d\t",i);
			if(i==temp||(i-temp)%7==0)	
			{
				printf("\n");
			}
		}	
	} 
	printf("\n");
} 

這個(gè)函數(shù)的作用就是打印日歷,result是日歷上面空余的天數(shù)萬(wàn)年歷c語(yǔ)言編程代碼,c語(yǔ)言,開(kāi)發(fā)語(yǔ)言

得到的result就是為了將這些空白部分輸出,把當(dāng)前月份空余天數(shù)輸出。

5.main函數(shù)(主函數(shù))

int main(void)
{
	//用戶(hù)輸入年 月 
	printf("請(qǐng)輸入年-月:"); 
	scanf("%d-%d",&year,&month);
	printBegin();
	int sum=daySum(year,month);
	printResult(sum,year,month);
	printStar();
	system("pause");//防止閃屏 
	return 0;	
}

將其他函數(shù)在主函數(shù)中調(diào)用,就能做出一個(gè)完整的萬(wàn)年歷。

完整代碼

/*
	1.用戶(hù)輸入年,月
	2.打印一個(gè)日歷 
*/
#define _CRT_SECURE_NO_WARNINGS//使用宏定義是讓編譯器進(jìn)行操作,讓編譯器忽略?xún)?nèi)庫(kù)存的問(wèn)題 
#include<stdio.h>
#include<stdlib.h>
int year,month;
//閏年和平年   2月份天數(shù)不一樣
int  runnian[12]={31,29,31,30,31,30,31,31,30,31,30,31};
int  pingnian[12]={31,28,31,30,31,30,31,31,30,31,30,31};
char weekday[7][10]={"一","二","三","四","五","六","日"}; 
//打印星號(hào)
void printStar()
{
	printf("*****************************************************\n");	
} 
//打印日歷的抬頭
void printBegin()
{
	printf("\t\t\t萬(wàn)年歷\t\t\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
	{
		return 0;
	}
	/*int four,hundred,fourhundred;
	four=year%4;
	hundred=year%100;
	fourhundred=year%400;
	if(four==0&&hundred==0&&fourhundred==0)
	{
		return 1;
	}
	else if(four==0&&hundred!=0&&fourhundred!=0)
	{
		return 1;
	}
	return 0;*/
}
//1900年1月1日是星期一,比較方便后面的計(jì)算 
//我們需要算我們輸入的年份離1900年有多少天
int  daySum(int year,int month)
{
	//1900 1 1 是星期一
	int i,sum=0;
	for(i=1900;i<year;i++)	
	{
		//判斷當(dāng)前年份是閏年還是平年
		{	
			if(leap(i))
			{
				sum+=366;
			}
			else
			{
				sum+=365;	
			} 
		} 
	}
	for(i=0;i<month-1;i++)//i<month-1是因?yàn)槲覀儾荒軐⑽覀冚斎氲脑路萦?jì)算在內(nèi) 
	{
		if(leap(year)==1)
		{
			sum+=runnian[i];	
		} 
		else
		{
			sum+=pingnian[i];
		}
	}
	return sum;
} 
//打印日歷 
void printResult(int sum,int year,int month)
{
	int result,temp,i;//result為余數(shù),temp為中間變量,i為循環(huán)變量
	result=sum%7;//日歷上前面空余的天數(shù)	,就是總天數(shù)除以7的余數(shù)
	//把當(dāng)前月份空余的天數(shù)用空格表示
	for(i=0;i<result;i++)
	{
		printf("\t");	
	} 
	temp=7-result;//從第幾格開(kāi)始打印一號(hào)
	if(leap(year)==1) 
	{
		//數(shù)組下標(biāo)從0開(kāi)始
		//月份只能從1開(kāi)始 
		for(i=1;i<=runnian[month-1];i++)
		{
			printf("%d\t",i);
			if(i==temp||(i-temp)%7==0)	
			{
				printf("\n");
			}
		}
		printf("\n");	
	} 
	else 
	{
		for(i=1;i<=pingnian[month-1];i++)
		{
			printf("%d\t",i);
			if(i==temp||(i-temp)%7==0)	
			{
				printf("\n");
			}
		}	
	} 
	printf("\n");
} 
int main(void)
{
	
	//用戶(hù)輸入年 月 
	printf("請(qǐng)輸入年-月:"); 
	scanf("%d-%d",&year,&month);
	printBegin();
	int sum=daySum(year,month);
	printResult(sum,year,month);
	printStar();
	system("pause");//防止閃屏 
	return 0;	
}

這里我們進(jìn)行一個(gè)測(cè)試,當(dāng)我們輸入2022-12時(shí),看我們所寫(xiě)的程序運(yùn)行結(jié)果是不是能和電腦上的日歷一樣。
這是我們運(yùn)行出來(lái)的結(jié)果:
萬(wàn)年歷c語(yǔ)言編程代碼,c語(yǔ)言,開(kāi)發(fā)語(yǔ)言
這是電腦日歷:萬(wàn)年歷c語(yǔ)言編程代碼,c語(yǔ)言,開(kāi)發(fā)語(yǔ)言
我們可以從這兩個(gè)圖片觀(guān)察出,我們代碼運(yùn)行出來(lái)的結(jié)果與電腦日歷上是差不多的。

總結(jié)
以上便是根據(jù)年月的輸入,輸出所在的當(dāng)月日歷。在這個(gè)基礎(chǔ)上,我們還能夠編寫(xiě)通過(guò)輸入年份,輸出這一年十二個(gè)月的日歷,如果感興趣的小伙伴們,可以自行嘗試寫(xiě)一下。
這是我第一次寫(xiě)的完整的一個(gè)程序,如果有錯(cuò)誤的地方或者有疑問(wèn)的地方,請(qǐng)大家在評(píng)論區(qū)中指出。希望大家能給我這個(gè)新人點(diǎn)個(gè)關(guān)注,點(diǎn)點(diǎn)贊!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-516212.html

到了這里,關(guān)于C語(yǔ)言實(shí)現(xiàn)萬(wàn)年歷(附代碼) 小白完成的第一個(gè)C語(yǔ)言程序,希望大家多多關(guān)注,點(diǎn)贊的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 51單片機(jī)實(shí)訓(xùn)項(xiàng)目之“萬(wàn)年歷”代碼原理詳解

    51單片機(jī)實(shí)訓(xùn)項(xiàng)目之“萬(wàn)年歷”代碼原理詳解

    讀者若需要工程源碼,可以私信我,收到后會(huì)第一時(shí)間回復(fù)。這是仿真效果? 51單片機(jī)萬(wàn)年歷程序設(shè)計(jì)(附源碼+仿真分享)_嗶哩嗶哩_bilibili STC89C52 DS18B20(溫度傳感器) DS1302(時(shí)鐘芯片) LCD1602液晶顯示 獨(dú)立按鍵 杜邦線(xiàn) (一).子程序 EEPROM.h LCD1602.h DS1302時(shí)鐘模塊的三個(gè)引腳:

    2024年02月08日
    瀏覽(22)
  • 基于ego1開(kāi)發(fā)板的萬(wàn)年歷自動(dòng)數(shù)字日歷設(shè)計(jì)verilog代碼

    基于ego1開(kāi)發(fā)板的萬(wàn)年歷自動(dòng)數(shù)字日歷設(shè)計(jì)verilog代碼

    名稱(chēng):基于ego1開(kāi)發(fā)板的萬(wàn)年歷自動(dòng)數(shù)字日歷設(shè)計(jì)verilog代碼 軟件:VIVADO 語(yǔ)言:Verilog 代碼功能: 自動(dòng)數(shù)字日歷設(shè)計(jì)? 設(shè)計(jì)自動(dòng)數(shù)字日歷,用七段數(shù)字顯示器顯示年(后2位)、月、日和星期數(shù),在計(jì)日脈沖的作用下,自動(dòng)完成1-12月的月、日及星期的計(jì)數(shù)和顯示。 FPGA代碼Verilog/VHDL代碼

    2024年02月03日
    瀏覽(78)
  • STM32制作萬(wàn)年歷

    ? ? STM32萬(wàn)年歷制作指南 一、概述 STM32是一種常用的微控制器,具有強(qiáng)大的處理能力和低功耗特性,非常適合用于制作各種電子設(shè)備。本文將介紹如何使用STM32制作一款簡(jiǎn)易的萬(wàn)年歷,幫助您輕松查看日期、時(shí)間和農(nóng)歷等信息。 二、所需材料 1. STM32微控制器(建議使用STM32F

    2024年02月03日
    瀏覽(27)
  • 6-6 萬(wàn)年歷顯示函數(shù)

    題主為武理的學(xué)生 網(wǎng)上沒(méi)有對(duì)應(yīng)答案 僅以學(xué)習(xí)用途上傳 設(shè)計(jì)一個(gè)萬(wàn)年歷,當(dāng)用戶(hù)輸入年份和月份時(shí),顯示這個(gè)月的日歷表。程序重點(diǎn)是這個(gè)月的第一天是星期幾和這個(gè)月有幾天,有了這兩個(gè)值,只需通過(guò)排列,就可以顯示這個(gè)日歷。程序要求用戶(hù)輸入的年份是從1900年開(kāi)始,

    2024年01月18日
    瀏覽(23)
  • 基于Java的萬(wàn)年歷(課設(shè))

    基于Java的萬(wàn)年歷(課設(shè))

    資源鏈接:基于Java的萬(wàn)年歷(課設(shè)) 摘 要 Java編程語(yǔ)言自誕生十幾年來(lái),已經(jīng)成功地運(yùn)用在網(wǎng)絡(luò)計(jì)算及移動(dòng)等各個(gè)領(lǐng)域。對(duì)于開(kāi)發(fā)者來(lái)說(shuō),它具有簡(jiǎn)單、面向?qū)ο?、健壯、安全、結(jié)構(gòu)中立、可移植和高效能等眾多優(yōu)點(diǎn)。此次我們用JAVA來(lái)設(shè)計(jì)一個(gè)萬(wàn)年歷程序,該程序以網(wǎng)頁(yè)形

    2024年02月11日
    瀏覽(25)
  • 基于FPGA的電子萬(wàn)年歷設(shè)計(jì)

    基于FPGA的電子萬(wàn)年歷設(shè)計(jì)

    quartusii12.1 系統(tǒng)的整個(gè)結(jié)構(gòu)框圖: ?然后,設(shè)置控制輸入有5個(gè)腳,分析功能如下所示: i_Function_Controller=0 ;顯示年月日 i_sel:選擇需要調(diào)整的某位數(shù)字。 i_set:計(jì)數(shù)器,調(diào)整需要調(diào)整的位置的數(shù)字。 具體調(diào)整的時(shí)候,首先選擇i_sel,按鍵按一下,需要調(diào)整的位置會(huì)移動(dòng)一次,

    2024年02月03日
    瀏覽(24)
  • 萬(wàn)年歷【小游戲】(Java課設(shè))

    萬(wàn)年歷【小游戲】(Java課設(shè))

    Java實(shí)現(xiàn)的小游戲 適合作為Java課設(shè)?。?! jdk1.8+Idea或eclipse 本系統(tǒng)源碼地址:https://download.csdn.net/download/qq_50954361/87801830 更多Java課設(shè)系統(tǒng)源碼地址:更多Java課設(shè)系統(tǒng)源碼地址 更多Java小游戲運(yùn)行效果展示:更多Java小游戲運(yùn)行效果展示 Java課設(shè)部署教程:Java課設(shè)部署教程 注意事

    2024年02月15日
    瀏覽(14)
  • 基于51單片機(jī)的萬(wàn)年歷設(shè)計(jì)

    基于51單片機(jī)的萬(wàn)年歷設(shè)計(jì)

    目? 錄 前言....................................................................... 1 1 緒論..................................................................... 3 1.1 課題研究的背景..................................................... 3 1.2課題的研究目的與意義................................................ 3 1.3課題解決的主要內(nèi)

    2024年02月02日
    瀏覽(32)
  • PTA6-6 萬(wàn)年歷顯示函數(shù)

    設(shè)計(jì)一個(gè)萬(wàn)年歷,當(dāng)用戶(hù)輸入年份和月份時(shí),顯示這個(gè)月的日歷表。程序重點(diǎn)是這個(gè)月的第一天是星期幾和這個(gè)月有幾天,有了這兩個(gè)值,只需通過(guò)排列,就可以顯示這個(gè)日歷。程序要求用戶(hù)輸入的年份是從1900年開(kāi)始,已知1900年1月1日是星期一。 日歷中每個(gè)具體的日期占5個(gè)

    2024年01月16日
    瀏覽(31)
  • FPGA項(xiàng)目(12)——基于FPGA的萬(wàn)年歷設(shè)計(jì)

    FPGA項(xiàng)目(12)——基于FPGA的萬(wàn)年歷設(shè)計(jì)

    ? ? ? ? 首先稱(chēng)述一下所實(shí)現(xiàn)的功能:可以顯示年、月、日、時(shí)、分、秒,有鬧鐘設(shè)置功能,鬧鐘時(shí)間到時(shí),蜂鳴器響,報(bào)警。用6位數(shù)碼管進(jìn)行顯示,分三個(gè)顯示頁(yè)面,第一個(gè)頁(yè)面顯示年月日,第二個(gè)界面顯示時(shí)分秒,第三個(gè)頁(yè)面顯示鬧鐘時(shí)間??梢杂冒存I進(jìn)行翻頁(yè),按鍵進(jìn)

    2024年02月07日
    瀏覽(31)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包