题解 | #蛇形矩阵#

蛇形矩阵

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

#include <stdio.h>
#include <stdlib.h>
#define arr(i,j) *(arr+i*a+j)
int main() {
    int a,i,j,count=0,num=1;
    scanf("%d", &a);
    int* arr=malloc(sizeof(int)*a*a);
    while(num<=a*a)//参考大佬的思路写的,说实话没有合适的头绪完全写不出来
    {
        for(i=0;i<a;i++)
        {
            for(j=0;j<a;j++)
            {
                if(i+j==count)
                {
                    if(count%2==0)
                    arr(j,i)=num++;
                    else
                    arr(i,j)=num++;
                }
            }
        }
        count++;
    }
    for(i=0;i<a;i++)
    {
        for(j=0;j<a;j++)
            printf("%d ",arr(i,j));
        printf("\n");
    }
    free(arr);
    return 0;
}

全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务