目录
1.题目要求,按照指定的行列号内,数组按照蛇形的规律排列,
比如 1 2 6 7
3 5 8 13
4 9 12 14
10 11 15 16
//每次只打印一条斜线,打印一条换个方向打印
//方向相反的时候只是行列下标兑换一下就可以
//
#include<stdio.h>
int main()
{
int n,i,j,count=1;
scanf("%d",&n);
int arr[n][n];
for(i=0;i<n*2;i++)//增加和减少通用
{
for(j=0;j<=i;j++)// 顶角位置行列号是相同的
{
if(i-j<n && j < n )//行号 列号都不可能超过输入数
{
if(i%2) //一个循环代表一种方向
{
arr[j][i-j]=count++; //左下移动 行增加 列减少
}
else
{
arr[i-j][j]=count++;//右上移动 行减少 列增加
}
}
}
}
//打印
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
return 0;
}
看代码还有不明白的地方 ,欢迎私信