题目描述
小 A 想制作 2025 年每个月的日历。他希望你能编写一个程序,按照格式输出给定月份的日历。
具体来说,第一行需要输出 MON TUE WED THU FRI SAT SUN,分别表示星期一到星期日。接下来若干行中依次输出这个月所包含的日期,日期的个位需要和对应星期几的缩写最后一个字母对齐。例如,2025 年 9 月 1 日是星期一,在输出九月的日历时,1 号的个位 1 就需要与星期一 MON 的最后一个字母 N 对齐。九月的日历输出效果如下:
MON TUE WED THU FRI SAT SUN
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
你能帮助小 A 完成日历的制作吗?
输入格式
一行,一个正整数 m,表示需要按照格式输出 2025 年 m 月的日历。
输出格式
输出包含若干行,表示 2025 年 m 月的日历。
输入输出样例
输入 #1复制
9
输出 #1复制
MON TUE WED THU FRI SAT SUN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
输入 #2复制
6
输出 #2复制
MON TUE WED THU FRI SAT SUN
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
说明/提示
对于所有测试点,保证 1≤m≤12。
本题有些麻烦,所以用if大发就行。
代码
太长了,我照日历打了近2小时。
#include <bits/stdc++.h>
using namespace std;
int main() {
int n,num=-1;
cin>>n;
cout<<"MON TUE WED THU FRI SAT SUN"<<endl;
if(n==1) {
cout<<" "<<1<<" "<<2<<" "<<3<<" "<<4<<" "<<5<<endl;
for(int i=6; i<=31; i++) {
num++;
if(num==7){
num=0;
cout<<endl;
}
if(i<10) cout<<" "<<i<<" ";
else cout<<" "<<i<<" ";
}
}
if(n==2) {
cout<<" "<<1<<" "<<2<<endl;
for(int i=3; i<=28; i++) {
num++;
if(num==7){
num=0;
cout<<endl;
}
if(i<10) cout<<" "<<i<<" ";
else cout<<" "<<i<<" ";
}
}
if(n==3) {
cout<<" "<<1<<" "<<2<<endl;
for(int i=3; i<=31; i++) {
num++;
if(num==7){
num=0;
cout<<endl;
}
if(i<10) cout<<" "<<i<<" ";
else cout<<" "<<i<<" ";
}
}
if(n==4) {
cout<<" "<<1<<" "<<2<<" "<<3<<" "<<4<<" "<<5<<" "<<6<<endl;
for(int i=7; i<=30; i++) {
num++;
if(num==7){
num=0;
cout<<endl;
}
if(i<10) cout<<" "<<i<<" ";
else cout<<" "<<i<<" ";
}
}
if(n==5) {
cout<<" "<<1<<" "<<2<<" "<<3<<" "<<4<<" "<<endl;
for(int i=5; i<=31; i++) {
num++;
if(num==7){
num=0;
cout<<endl;
}
if(i<10) cout<<" "<<i<<" ";
else cout<<" "<<i<<" ";
}
}
if(n==6) {
cout<<" "<<1<<endl;
for(int i=2; i<=30; i++) {
num++;
if(num==7){
num=0;
cout<<endl;
}
if(i<10) cout<<" "<<i<<" ";
else cout<<" "<<i<<" ";
}
}
if(n==7) {
cout<<" "<<1<<" "<<2<<" "<<3<<" "<<4<<" "<<5<<" "<<6<<endl;
for(int i=7; i<=31; i++) {
num++;
if(num==7){
num=0;
cout<<endl;
}
if(i<10) cout<<" "<<i<<" ";
else cout<<" "<<i<<" ";
}
}
if(n==8) {
cout<<" "<<1<<" "<<2<<" "<<3<<" "<<endl;
for(int i=4; i<=31; i++) {
num++;
if(num==7){
num=0;
cout<<endl;
}
if(i<10) cout<<" "<<i<<" ";
else cout<<" "<<i<<" ";
}
}
if(n==9) {
for(int i=1; i<=30; i++) {
num++;
if(num==7){
num=0;
cout<<endl;
}
if(i<10) cout<<" "<<i<<" ";
else cout<<" "<<i<<" ";
}
return 0;
}
if(n==10) {
cout<<" "<<1<<" "<<2<<" "<<3<<" "<<4<<" "<<5<<endl;
for(int i=6; i<=31; i++) {
num++;
if(num==7){
num=0;
cout<<endl;
}
if(i<10) cout<<" "<<i<<" ";
else cout<<" "<<i<<" ";
}
}
if(n==11) {
cout<<" "<<1<<" "<<2<<endl;
for(int i=3; i<=30; i++) {
num++;
if(num==7){
num=0;
cout<<endl;
}
if(i<10) cout<<" "<<i<<" ";
else cout<<" "<<i<<" ";
}
}
if(n==12) {
for(int i=1; i<=31; i++) {
num++;
if(num==7){
num=0;
cout<<endl;
}
if(i<10) cout<<" "<<i<<" ";
else cout<<" "<<i<<" ";
}
return 0;
}
}
作者打代码不易求点赞,求关注。

被折叠的 条评论
为什么被折叠?



