您当前的位置:首页 > 互联网教程

c语言打印月历 怎么编写啊~ 谢谢!

发布时间:2025-05-18 05:28:32    发布人:远客网络

c语言打印月历 怎么编写啊~ 谢谢!

一、c语言打印月历 怎么编写啊~ 谢谢!

1、编写一个C语言程序来打印月历,可以分为几个步骤。首先,定义一个数组来存储每个月的天数,考虑闰年的情况。这里有一个示例数组:int m[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};,对于闰年,我们需要调整二月的天数:int n[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};。接下来,定义一个数组来表示一周中的每一天:char w[7][3]={"日","一","二","三","四","五","六"};。为了方便地获取月份名称,我们还需要定义一个数组:char mon[13][7]={"","一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};。

2、接下来,我们需要编写一个函数来判断是否为闰年。这里有一个示例实现:int IsLeap(int year){ if((year%4==0&& year%100!=0)||(year%400==0)) return 1; else return 0;}。通过这个函数,我们可以确定特定年份是否为闰年。

3、此外,我们还需要编写一个函数来计算给定日期是星期几。这个函数需要接受年份、月份和日期作为参数。首先,我们需要计算从1900年1月1日到指定日期的总天数。然后,根据当前年份是否为闰年来调整二月份的天数。最后,我们可以通过总天数除以7得到星期几:int Getweekday(int year,int month,int day){ int weekday; int dayCount=0; int i; if(IsLeap(year)){ for(i=1;i<=month-1;i++){ dayCount+=n[i];}} else{ for(i=1;i<=month-1;i++){ dayCount+=m[i];}} dayCount+=day; weekday=dayCount%7; return weekday;}。

4、最后,我们可以在主函数中调用这些函数来打印月历。首先,获取用户输入的年份和月份,然后计算每个月的第一天是星期几。接下来,输出月份名称和一周的每一天。最后,根据每个月的实际天数打印日期。这个过程可以使用循环来简化代码:int main(){ int year, month; printf("请输入年份和月份:"); scanf("%d%d",&year,&month); int weekday= Getweekday(year, month, 1); for(int i= 0; i< weekday; i++){ printf("");} for(int i= 1; i<= m[month]; i++){ printf("%3d", i); if((i+weekday)%7== 0) printf("\n");} return 0;}。

5、通过以上步骤,你可以编写一个C语言程序来打印指定月份的月历。希望这些信息对你有所帮助。

二、C语言万年历代码

int FirstDay_Year,FirstDay_Month;//某年的第一天是星期几,某年某月的第一天是星期几(范围是0~6,其中0代表星期日)

int IsLeapYear;//是否为闰年,0表示不是闰年,1表示是闰年

char YN;//Yes No,程序是否要继续

int Days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

//Days[1~12]存储每个月有多少天,其中二月的天数是可变的(闰年29天,平年28天),这里初始化为28天

printf(" C语言简单万年历\n");//打印标题

XunHuan://循环标号(可以通过goto跳转到这里)

printf("请输入年份<0000~9999>:");//提示输入年份(0~9999)

scanf("%d",&Year);//把输入的年份赋值给变量Year

printf("请输入月份<0~12>:");//提示输入月份(1~12)

scanf("%d",&Month);//把输入的月份赋值给变量Month

FirstDay_Year=5*(y/4)+(y%4)-(y/100)+(y/400);//蔡勒公式(计算某年的第一天是星期几)

IsLeapYear=(y%4==4&&y%100!=100||y%400==0)?1:0;

Days[2]=(IsLeapYear==1)?29:28;//闰年二月29天,非闰年二月28天

FirstDay_Month=(d+FirstDay_Year)%7;//当月的第一天是星期几(0代表星期日)

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

printf("\t\t公元%d年%2d月",Year,Month);//打印年月

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

printf("星期日星期一星期二星期三星期四星期五星期六\n");

for(i=0;i<FirstDay_Month;i++)

printf("%7c",'');//当某月的第一天不是星期日时打印空格占位

for(d=1;d<=Days[Month];d++)//循环,从每个月的第一天开始打印

if(((d+FirstDay_Month)%7)==0&& d<Days[Month])

printf("\n");//当输出了星期六而且还未输出所有天数时,换行

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

printf("是否继续(Y/N)?\n");

if(YN=='Y'|| YN=='y')

三、万年历的C语言编法

1、if((a%4==0&&a%100!=0)||(a%100==0&&a%400==0))

2、int aa[12]={31,28,31,30,31,30,31,31,30,31,30,31};

3、int cc[12]={31,29,31,30,31,30,31,31,30,31,30,31};

4、char bb[8][8]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

5、{if(leapyear(c)==1) k=k+cc[j-1];

6、else cout<<aa[m-1]<<endl;

7、void nianfen(int n)/*打印年份的日历*/

8、 cout<<"月份"<<endl;

9、 cout<<"日"<<"一"<<"二"<<"三"<<"四"<<"五"<<"六"<<endl;

10、 cout<<setw(4)<<"";

11、 cout<<setw(4)<<k;

12、 cout<<"月份"<<endl;

13、cout<<ww(1,j,n)<<endl;

14、 cout<<endl<<"日"<<"一"<<"二"<<"三"<<"四"<<"五"<<"六"<<endl;

15、 cout<<setw(4)<<"";

16、 cout<<setw(4)<<k;

17、void nianyue(int n,int y)/*打印某年某月的月历*/

18、 cout<<"日"<<"一"<<"二"<<"三"<<"四"<<"五"<<"六"<<endl;

19、 cout<<setw(4)<<"";

20、 cout<<setw(4)<<k;

21、{ cout<<endl<<"日"<<"一"<<"二"<<"三"<<"四"<<"五"<<"六"<<endl;

22、 cout<<setw(4)<<"";

23、 cout<<setw(4)<<k;

24、cout<<"***********************************:"<<endl;

25、cout<<"1查询某年某月某日是星期几"<<endl

26、<<"2是否为闰年"<<endl

27、<<"3查询某月的最大天数"<<endl

28、<<"4打印某年的全年日历"<<endl

29、<<"5打印某年某月的月历"<<endl

30、<<"***********************************:"<<endl;

31、cout<<"请输入要操作的指令:"<<endl;

32、case 1:cout<<"请输入要查询的日期:";

33、 cout<<endl<<"month:";

34、 cout<<endl<<"day:";

35、 cout<<bb[ww(day,month,year)]<<endl;break;

36、 case 1:cout<<"星期一";break;

37、 case 2:cout<<"星期二";break;

38、 case 3:cout<<"星期三";break;

39、 case 4:cout<<"星期四";break;

40、 case 5:cout<<"星期五";break;

41、 case 6:cout<<"星期六";break;

42、 case 7:cout<<"星期日";break;

43、case 2:cout<<"请输入要查询的年份:";

44、 if(leapyear(m)==1) cout<<"是闰年"<<endl;

45、 else cout<<"不是闰年,请返回重新输入"<<endl;

46、case 3:cout<<"请输入月份:";

47、case 4:cout<<"请输入所要打印年份:";

48、case 5:cout<<"请输入年份:";

49、 cout<<endl<<"请输入月份:";



相关内容FAQs: