蛇形数组
.
要求:在n* n方阵里输入1,2,3,…,n,填成蛇形:
.
思想:图形的方向是向右,下,左,上,在进入内圈的时候还是右,下,左,上,所以我们可以创建四个变量来控制它的方向和二维数组和一个对应的自增变量往数组中存入相应的数值,最后可再用循环控制内层的圈数;
.
.
对应代码如下:
#include<stdio.h>
int arr[100][100];
int n;
int main()
{
scanf("%d",&n);
int cnt=1,i,j;
int tap=0, bottom=n-1;
int left=0, right=n-1;
while(tap<=bottom&&right>=left)
{
int t = left;
while(t<=right)
{
arr[tap][t++]=cnt++;
}
tap++;
t = tap;
while(t<=bottom)
{arr[t++][right]=cnt++;}
right--;
t=right;
while(t>=left)
{
arr[bottom][t--]=cnt++;
}
bottom--;
t=bottom;
while(t>=tap)
{
arr[t--][left]=cnt++;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%-5d",arr[i][j]);
printf("\n");
}
return 0;
}
以上就是关于蛇形数组的做法及其讲解.