题解 | #蛇形矩阵#
蛇形矩阵
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;
}
查看19道真题和解析