题解 | #回型矩阵#

回型矩阵

https://www.nowcoder.com/practice/36d5dfddc22c4f5b88a5b2a9de7db343

#include <stdio.h>

int main() {
    int arr[20][20], n;//定义
    scanf("%d", &n);
    int up = 0, left = 0, right = n - 1, down = n - 1;//从四个方向考虑问题
    int x = 1;//记录数据元素的大小
    while (x <= n * n)//循环条件
    {
        for (int i = left; i <= right; i++)//第一方向,从左向右
        {
            arr[up][i] = x++;
        }
        up++;//往下走
        for (int i = up; i <= down; i++) //right列不动,上下动
        {
            arr[i][right] = x++;
        }
        right--;//往左走
        for(int i = right;i>=left;i--)//down不动,列数元素动
        {
           arr[down][i] = x++; 
        }
        down--;//向上走
        for(int i = down;i>=up;i--)//left不动,上下动
        {
            arr[i][left] = x++;
        }
        left++;
    }
    
    for(int i = 0;i < n;i++)//打印输出
    {
        for(int j = 0;j<n;j++)
        {
            printf("%d ",arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}

C语言基础 文章被收录于专栏

里面较为详细的介绍了c语言的相关用法和有关题目。

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务