TB椰程 TypeBuddy 打字搭子

2025-09 · 3级 · 日历制作

GESP 标程 · 考级真题 · 代码 · cpp · 难度 4/5 · 共 1034 字

CCF 原卷官方标程 · 基础语法 · 本地编译通过(样例文本抽取有缺字,以 OJ 原题为准)

  • 2025-09
  • 基础语法

正文

// GESP 2025-09 C++ 3级 编程题 2 · 日历制作
// 原题:https://oj.yecheng.tv/p/gs2509l3p2
// 官方原卷:https://gesp.ccf.org.cn/101/attach/1703975921385504.pdf
// 题意:小 A 想制作 2025 年每个月的日历。
// 知识点:基础语法
// 参考程序:CCF 原卷官方标程,PDF 抽取后已去行号;本地编译核验通过,供打字练习
// 原卷样例验证:样例验证 0/2 通过
// 提示:官方样例答案由 PDF 文本化生成,空格/换行可能缺失,样例对比未全通过;程序保持官方原样
//
#include <algorithm>
#include <cstdio>
using namespace std;
int days[20] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int main() {
    int m;
    scanf("%d", &m);
    printf("MON     TUE   WED  THU  FRI   SAT  SUN\n");
    int d = days[m];
    int w = 1;
    if (m > 9) {
        for (int i = 9; i < m; i++) w = (w + days[i] - 1) % 7 + 1;
    } else if (m < 9) {
        for (int i = 8; i >= m; i--) w = ((w - days[i]) % 7 + 7) % 7;
        if (w == 0) w = 7;
    }
    for (int i = 1; i < w; i++) printf("       ");
    for (int i = 1; i <= d; i++) {
        printf("%  3d", i);
        w = w % 7 + 1;
        if (w == 1 || i == d)
            printf("\n");
        else
            printf("  ");
    }
    return 0;
}

GESP 标程 · 考级真题的其它内容

打字首页 · 英语学习中心 · 词库画廊 · 编程打字 · 指法入门 · 天梯榜 · 数据分析 · 班级课堂 · 关于我们
椰程 TypeBuddy 打字搭子 —— 键盘指法练习 · 单词记忆 · 班级课堂 · 在线 PK