You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言如何根据输入n动态生成对应层数的字母嵌套方框图案

动态嵌套方框图案实现方案

核心规律梳理

所有样例均符合以下可复用的逻辑,不需要针对每个n单独写静态判断:

  • 输入正整数n时,生成的正方形矩阵边长固定为 2*n
  • 从最外层到最内层共n层嵌套边框,从外到内依次使用从A开始倒数的连续大写字母:最外层为'A' + n -1,最内层为'A'
  • 对矩阵中任意坐标位置,计算它到矩阵上、下、左、右四条边界的最短距离,距离为0对应最外层,距离为k对应往内第k层,直接匹配对应字符即可。

可直接运行的实现代码

#include <stdio.h>

int main() {
    int i, j, n;
    printf("Enter the no for pattern:\n");
    // 基础输入合法性校验
    if (scanf("%d", &n) != 1 || n < 1) {
        printf("请输入正整数\n");
        return 1;
    }
    int size = 2 * n; // 矩阵总边长
    for (i = 1; i <= size; i++) {
        for (j = 1; j <= size; j++) {
            // 计算当前点到四条边的距离
            int dist_top = i - 1;
            int dist_bottom = size - i;
            int dist_left = j - 1;
            int dist_right = size - j;
            // 取四个距离的最小值,确定当前点所在层数
            int min_dist = dist_top;
            if (dist_bottom < min_dist) min_dist = dist_bottom;
            if (dist_left < min_dist) min_dist = dist_left;
            if (dist_right < min_dist) min_dist = dist_right;
            // 匹配对应字符打印
            printf("%c", 'A' + (n - 1 - min_dist));
        }
        printf("\n");
    }
    return 0;
}

效果验证

  • 输入n=1时,输出2*2全A矩阵,符合要求
  • 输入n=2时,输出4*4外层B、内层A的边框,和最初静态实现的输出完全一致
  • 输入n=3时,输出6*6三层嵌套C/B/A图案,和给出的样例完全匹配

内容的提问来源于stack exchange,提问作者Reactoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 10:42:22