【题目描述】
在n×n方阵里填入1,2,3,…,n×n,要求填成蛇形。例如n=4时方阵为:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
其中,n≤20。
【输入】
输入n。
【输出】
输出题述方阵。n行,每行各数之间用一个空格隔开。
【输入样例】
4
【输出样例】
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
#include <stdio.h>
#include <math.h>
#define MAX_SIZE 25
int main()
{
int a[MAX_SIZE][MAX_SIZE], n, cnum, x, y, k = 1, i, j;
scanf("%d", &n);
cnum = ceil((double)n/2);
for(i = 1; i <= cnum; i++)
{
for(x = i, y = n-i+1; x <= n-i+1; x++)
a[x][y] = k++;
for(x = n-i+1, y = n-i; y >= i; y--)
a[x][y] = k++;
for(x = n-i, y = i; x >= i; x--)
a[x][y] = k++;
for(x = i, y = i+1; y <= n-i; y++)
a[x][y] = k++;
}
for(i = 1; i <= n; i++)
{
for(j = 1; j <= n; j++)
printf("%d ", a[i][j]);
printf("\n");
}
return 0;
}
还有其他的方法,因时间原因,不在此展示。