要求输入年月,输出对应的月历表,月历表要契合标准日历,第一行从星期一开始,星期日结束。
2条回答 默认 最新
- 技术专家团-小桥流水 2021-10-27 18:07关注
代码如下,如有帮助,请帮忙采纳一下,谢谢。
效果图是输入2018 5代码:
#include <stdio.h> int main() { int year,mon; int i,j,cnt = 0; int t = 1,k=1; int arr[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int curYear,curMon,curDay, wk; curYear = 2021; curMon = 10; curDay = 27; wk = 3; scanf("%d %d",&year,&mon); if(curYear >= year) { for(i=mon;i<=12;i++) { if(i==2) { if(year%4==0 && year%100 !=0 || year%400==0) cnt += 29; else cnt += 28; }else cnt += arr[i]; } for(i=year+1;i<curYear;i++) { if(i%4==0 && i%100 !=0 || i%400==0) cnt += 366; else cnt += 365; } for(i=1;i<curMon;i++) { if(i==2) { if(curYear%4==0 && curYear%100 !=0 || curYear%400==0) cnt += 29; else cnt += 28; }else cnt += arr[i]; } cnt += curDay; wk = 7 - (wk+cnt)%7; }else { for(i=curMon+1;i<=12;i++) { if(i==2) { if(curYear%4==0 && curYear%100 !=0 || curYear%400==0) cnt += 29; else cnt += 28; }else cnt += arr[i]; } for(i=curYear+1;i<year;i++) { if(i%4==0 && i%100 !=0 || i%400==0) cnt += 366; else cnt += 365; } for(i=1;i<mon;i++) { if(i==2) { if(year%4==0 && year%100 !=0 || year%400==0) cnt += 29; else cnt += 28; }else cnt += arr[i]; } cnt += curDay; wk = (wk+cnt-1)%7; } printf("一 二 三 四 五 六 日\n"); //int t = 1,k=1; if(year%4==0 && year%100 !=0 || year%400==0) arr[2]= 29; while(t <= arr[mon]) { if(k<wk) { printf(" "); }else { printf("%-3d",t); t++; } if(k%7==0) printf("\n"); k++; } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 4无用
悬赏问题
- ¥30 Matlab打开默认名称带有/的光谱数据
- ¥50 easyExcel模板 动态单元格合并列
- ¥15 res.rows如何取值使用
- ¥15 在odoo17开发环境中,怎么实现库存管理系统,或独立模块设计与AGV小车对接?开发方面应如何设计和开发?请详细解释MES或WMS在与AGV小车对接时需完成的设计和开发
- ¥15 CSP算法实现EEG特征提取,哪一步错了?
- ¥15 游戏盾如何溯源服务器真实ip?需要30个字。后面的字是凑数的
- ¥15 vue3前端取消收藏的不会引用collectId
- ¥15 delphi7 HMAC_SHA256方式加密
- ¥15 关于#qt#的问题:我想实现qcustomplot完成坐标轴
- ¥15 下列c语言代码为何输出了多余的空格