番茄炒翟 2022-03-03 20:58 采纳率: 25%
浏览 73

用二维数组打印出蛇形矩阵

img


思考了两下 没想到点 怎么根据从里到外 好像得需要用到双重for 求给出讲解

  • 写回答

1条回答 默认 最新

  • 天影云光 后端领域新星创作者 2022-03-03 21:21
    关注
    int main()
    {
        int n = 0;
        scanf("%d", &n);
        int i = 0;
        int j = 0;
        int num = 1;
        int a[12][12] = { 0 };
    
        int t = ceil(1.0 * n / 2);//转的圈数为行数除以2,如果行数是奇数还要+1,其实就是ceil。
        for (int i = 0; i<t; i++)
        {
            for (int j = i; j < n - i; j++)
            {
                a[i][j] = num++;//向右
            }
            for (int j = i + 1; j < n - i;j++)
            {
                a[j][n - i - 1] = num++;//向下
            }
            for (j = n - i - 2; j >= i;j--)
            {
                a[n - i - 1][j] = num++;//向左
            }
            for (j = n - i - 2; j >= i + 1;j--)
            {
                a[j][i] = num++;//向上
            }
        }
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < n; j++)
            {
                printf("%3d", a[i][j]);
            }
            printf("\n");
        }
        return 0;
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 3月3日

悬赏问题

  • ¥15 halcon ocr mlp 识别问题
  • ¥15 已知曲线满足正余弦函数,根据其峰值,还原出整条曲线
  • ¥20 无法创建新的堆栈防护界面
  • ¥15 sessionStorage在vue中的用法
  • ¥15 wordpress更换域名后用户图片头像不显示
  • ¥15 如何在ubunto上安装CEF (Chromium Embedded Framework),并且基于qt实现打开一个web
  • ¥30 AD9854 为什么输出波形幅度受限,AI机器人勿扰
  • ¥15 如何在ubunto上安装CEF (Chromium Embedded Framework
  • ¥15 如何联系真正的开发者而非公司
  • ¥15 有偿求苍穹外卖环境配置