题解 | #蛇形矩阵#
蛇形矩阵
https://www.nowcoder.com/practice/f228a074c5274619b26be544962375e1
//我的思路挺简单,循环判断部分有冗余的部分不知道怎么简化,求大佬指点
#include <stdio.h>
int main() {
int arr[1000][1000];
int n = 0;
scanf("%d", &n);
int i = 0, j = 0, count = 0, val = 1, flag = 1;//循环计数//起始数1//区别蛇形方向
while(count<2*n-1){
for(i=0; i<=count; i++)
for(j=0; j<=count; j++)
if(i+j==count && i<n && j<n)//不能超出数组的下标范围
if(flag==1)
arr[j][i] = val++;
else
arr[i][j] = val++;
count++;//循环计数加1
flag=-flag;//改变蛇形方向
}
for(i=0; i<n; i++){
for(j=0; j<n; j++)
printf("%d ", arr[i][j]);
printf("\n");
}
return 0;
}


查看14道真题和解析