万年历---C语言编程---Linux环境下编程.docx_第1页
万年历---C语言编程---Linux环境下编程.docx_第2页
万年历---C语言编程---Linux环境下编程.docx_第3页
万年历---C语言编程---Linux环境下编程.docx_第4页
万年历---C语言编程---Linux环境下编程.docx_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

万年历-C语言编程-Linux环境下编程Linux下的C语言代码:#includeint main(void)int n,i;int year1,month1; /*定义要输入的变量,年,月*/int judge_year(int year); /*定义子函数,判断是否为闰年*/*定义子函数,对任何一个月进行排版*/int month_calendar(int year,int month,char *month2,char *week2); /*建立一年中所有月份的指针数组*/char *month=January,February,March,April,May,june,July,August,September,October,November,December;/*建立一周中所有天数指针数组*/char *week=Sun,Mon,Tue,Wed,Thu,Fri,Sat; do /*用do-while循环,可以选择跳转结束运行*/*简单介绍可以进行的选择*/printf(nWelcome to use the calendar system!n);printf(1. Year_calendar!n2. Month_calendar!n3. Quit!n);printf(Now please input your selection:);scanf(%d,&n); /*输入选择*/switch(n)case 1: /*选择输出年历,即Year_calendar*/printf(Please input the year,(for example:2014):);scanf(%d,&year1);system(clear);for(i=1;i=12;i+) /*用for循环输出一年中的12个月历*/if(judge_year(year1)=1) /*判断是不是闰年*/printf(Lead year %d-%d ,year1,i);elseprintf(Common year %d-%d ,year1,i);month_calendar(year1,i,month,week);putchar(10); /*换行*/;break;case 2: /*选择输出月历,即Month_calendar*/printf(Please input the year and month,(for example:2014.11):);scanf(%d.%d,&year1,&month1);system(clear);if(judge_year(year1)=1)printf(Lead year %d-%d ,year1,month1);elseprintf(Common year %d-%d ,year1,month1);month_calendar(year1,month1,month,week);break;default:n=3;break;while(n!=3); /*若n=3结束运行*/return(0);/*判断闰年*/int judge_year(int year)if(year%4=0 & year%100!=0) | year%400=0)return (1); /*若是闰年,返回1*/elsereturn (2); /*若是平年,返回2*/*月历*/int month_calendar(int year,int month,char *month2,char *week2)int l,m,n=0,i; /*定义变量,l接受判断闰年的返回值; m表示该月第一天是星期几; n表示该年中除掉该月的其它月的总天数 i为循环变量*/char *p; /*定义指向指针的指针*/l=judge_year(year); /*判断是否为闰年*/int month_day13; /*定义一个月份天数的数组,并用for循环赋值*/for(i=1;i13;i+)if(i=1 | i=3 | i=5 | i=7 | i=8 |i=10 | i=12)month_dayi=31; /*31天的月份*/else if(l=1 & i=2)month_dayi=29; /*闰年2月*/else if(l=2 & i=2)month_dayi=28; /*平年2月*/elsemonth_dayi=30; /*31天的月份*/if(month=1) /*计算该年中除掉该月的其它月的总天数*/n=0;elsefor(i=1;imonth;i+)n+=month_dayi;/*计算该月第一天是星期几*/m=(year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400)+n+1)%7;p=month2+month-1;printf(%sn,*p); /*输出该月的月份名*/for(i=0;i7;i+) /*输出周日到周一的名字*/p=week2+i;printf(%6s,*p);putchar(10);for(i=0;im;i+) /*月历中第一行若有空格,输出*/printf( );for(i=1;i=month_daymonth;i+) /*按排版输出月历*/printf(%6d,i);if(i+m)%7=0)putchar(10);putc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论