为了账号安全,请及时绑定邮箱和手机立即绑定

请问用C语言写日历怎样一行输入三个月啊。我是一个月一个月输入的,不会把二月输入到一月后面,求帮忙

请问用C语言写日历怎样一行输入三个月啊。我是一个月一个月输入的,不会把二月输入到一月后面,求帮忙

C
weibo_左右22388_0 2017-03-09 22:11:08
查看完整描述

1 回答

?
wDan_9527

TA贡献13条经验 获得超15个赞

代码上传到上面,我帮你改

查看完整回答
反对 回复 2017-08-02
  • 慕虎8249917
    慕虎8249917
    #include<stdio.h> #include <windows.h> //判断是否是闰年,是返回1,否返回0 bool isLeap(int year) { if((year%4==0 && year%100!=0) || (year%400==0)) return 1; else return 0; } void printCalendar(int year) { //提前定义一年每月的天数 int months[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int arr[66][66]; //设置一个基准年,获得基准年到当前年份的总天数,通过总天数除以7求余来计算当前第一月的第一天是周几,方便计算基准年设置为1990,1990的第一天是周一 int sum=0,week=0,day=1,k=0; char s[666]; for(int i=1900;i<year;i++) { sum+=365; //可能存在闰年的情况,天数366天,即需要修正总天数和二月份的天数 sum+=isLeap(i); } months[1]+=isLeap(year); week=sum%7;//当前年份第一天即为周(week+1) //循环打印12月日历 for(int i=0;i<12;i++) { //获得之后月份第一天是周几 if(i>0) { sum+=months[i-1]; week=sum%7; } printf("%d月\n",i+1); printf("周日\t周一\t周二\t周三\t周四\t周五\t周六\n"); //week+1代表每月第一天前需要空出来的位置 if(week!=6) for(int j=0;j<week+1;j++){ printf("\t"); } for( k=0;k<months[i];k++) { printf("%d\t",day); if((week+day+1)%7==0) { printf("\n"); } day++; } day=1; printf("\n"); printf("--------------------------------------------------"); printf("\n");
  • 1 回答
  • 0 关注
  • 1316 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号