题解 | #蛇形矩阵#

蛇形矩阵

https://www.nowcoder.com/practice/f228a074c5274619b26be544962375e1

#include<stdio.h>
void Serpentine_array(int arr[][1000], int n);
void Serpentine_print(int arr[][1000], int n);
int main() {
    int i = 0, j = 0;//循环变量
    int n = 0;
    int arr[1000][1000] = { 0 };
    //输入整数
    scanf("%d", &n);
    //蛇形矩阵赋值
    Serpentine_array(arr, n);
    //矩阵输出
    Serpentine_print(arr, n);
    return 0;
}
void Serpentine_array(int arr[][1000], int n) {
    int count = 1;//赋值
    int i = 0, j = 0;
    int flag = 0;//方向
    //矩阵内部
    while (count <= n * n) {
        if (i >= 0 && i < n && j >= 0 && j < n) {
            arr[i][j] = count;
            count++;
            if (0 == flag) {
                i--;
                j++;
            } else {
                i++;
                j--;
            }
        }
        //左端
        if (j < 0 && i != n) {
            j++;
            flag = 0;
        }
        //右端
        else if (j == n) {
            j--;
            i += 2;
            flag = 1;
        }
        //上部
        else if (i < 0 && j != n) {
            i++;
            flag = 1;
        }
        //下部
        else if (i == n) {
            i--;
            j += 2;
            flag = 0;
        }
    }
}

void Serpentine_print(int arr[][1000], int n) {
    int i = 0, j = 0;
    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++) {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }
}


全部评论

相关推荐

07-28 16:10
门头沟学院 Java
连笔试都没有就直接挂了&nbsp;这是学历厂吗两段大厂实习一段中厂一点机会都没有吗真的很难绷
xiaolihuam...:校招挂了,然后反手给我捞了个社招
投递虾皮信息等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务