1 条题解
-
0
#include <bits/stdc++.h> using namespace std; int arr[13]={0 , 3 , 6 , 6 , 2 , 4 , 7 , 2 , 5 , 1 , 3 , 6 , 1};// [1] arr-2025年各月1日对应的星期序号(1=周一,7=周日) int brr[13]={0 , 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31};// [2] brr-2025年各月的总天数 int main(){ int n;// [3] n-用户输入的目标月份 cin >> n;// [4] 读取输入的月份数值 cout << "MON TUE WED THU FRI SAT SUN" << endl;// [5] 输出日历星期表头 int cishu = brr[n] + arr[n] -1;// [6] cishu-当月需要输出的总位置数(前置空位置+总天数) int i = 1;// [7] i-循环遍历的位置序号,从1开始计数 // [8] 核心循环:遍历所有输出位置,逐列生成日历内容 while(i <= cishu ) { int num = i - arr[n] + 1 ;// [9] num-当前位置对应的日期数值,<1表示无有效日期 // [10] 分支:当前位置无有效日期,输出3个空格占位对齐 if( num < 1){ cout << " "; } // [11] 分支:个位数日期,输出2空格+数字保证右对齐 else if( num >= 1 && num <= 9 ){ cout << " " << num; } // [12] 分支:两位数日期,输出1空格+数字保证右对齐 else{ cout << " " << num; } // [13] 分支:每满7个位置(一行结束),输出换行符 if( i > 1 && i % 7 == 0){ cout << endl; } // [14] 分支:非行尾位置,输出列间隔空格 else{ cout <<" "; } i++;// [15] 位置序号自增,进入下一个位置 } return 0; }
信息
- ID
- 979
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 4
- 已通过
- 1
- 上传者