日历查询系统c语言1,C语言 日历查询系统 成品

#include #include #include //#include #include #include int isleapyear(int year) //判断该年是 闰年 还是 平年 { if((year%4==0&&year%100!=0) || (year%400==0) ) //判断该年是 闰年 return 1; else return 0; } int firstdayofyear(int year) //一年中的第一天是星期几 { return (year+(year-1)/4+(year-1)/400-(year-1)/100)%7; } void main() { char *monthname[13]={" ","一月份","二月份","三月份","四月份","五月份","六月份","七月份","八月份","九月份","十月份","十一月份","十二月份"}; int numday_month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //一个月的总天数 按平年来算 平年的二月是28天,闰年的二月是29天 int firstday_month[13]; // 存放每个月的第一天是星期几 int workarray[13]; int year; char cha; int k,m,n; int i,j,x,y; char p[20],ch; char temp[20]; srand(time(0)); //随便产生一个数 for(i=0;i<3;i++) { system("cls"); j=0; x=rand()%10000+1000; //产生的是一个大于1000的数 printf("*万年历系统*/n/n/n/n"); printf(" 验证码:%d/n",x); printf("/n/n 请输入验证码(还有%d次机会):",3-i); while(j<20&&(ch=getch())!='/r') { p[j++]=ch; putchar('*'); } p[j]='/0'; itoa(x,temp,10); //把X数 按十进制数转换为字符串 存储在temp[20]中 if(strcmp(p,temp)==0) { goto good; } //else //printf("/n重新输入"); } if(i>=3) { printf("/n/n/n 输入次数超过限制,退出系统!/n/n"); exit(0); } good:for(y=0;y<3;y++) //作为缓冲区 { system("cls"); printf("/n/n/n/n/n/n 请稍后"); Sleep(1000); printf("."); Sleep(1000); printf("."); Sleep(1000); printf("."); } do { system("cls"); //清屏效果 printf("/n"); printf("/n"); printf(" 欢 迎 进 入 万 年 历 查 询 系 统/n"); printf("/n"); printf(" 请输入待查询的年份:"); scanf("%d",&year); if(isleapyear(year)) //如果是闰年那么第二个月的总天数是29天 numday_month[2]=29; firstday_month[1]=firstdayofyear(year); //第一个月的第一天 也就是第一年的第一天 for(k=2;k<=12;k++) //注意这时 k=2 firstday_month[k]=(firstday_month[k-1]+numday_month[k-1])%7; //第二个月的第一天=(前一个月的第一天是星期几+前一个月的总天数)%7 for(k=1;k<=12;k++) workarray[k]=-firstday_month[k]; //注意 printf("%34s"," "); printf("year %d/n",year); for(k=1;k<=12;k++) //一年有12个月 { printf("/n"); printf("%32s/n/n",monthname[k]); printf("星期日/t星期一/t星期二/t星期三/t星期四/t星期五/t星期六/n"); for(m=1;m<=6;m++) //一个月最多有6行 { for(n=1;n<=7;n++) //一个星期有7天 { workarray[k]++; if(workarray[k]>0&&workarray[k]<=numday_month[k]) printf("%d/t",workarray[k]); else printf("/t"); } printf("/n"); } system("pause"); } printf("/n是否要继续请按Y/y,按其它键退出系统:"); scanf(" %c",&cha); //注意%c前面有个空格 因为之前按了回车键取代了一个位置 }while(cha=='Y'||cha=='y'); }

55731027a8542844d1e01e5ca5f28d24.png

0ffef9b49bc105b3b11d1ef60a0923b9.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值