【PTA】 7-114 螺旋方阵 ( C语言实现 )
程序员文章站
2022-06-07 14:28:40
...
我的思路大概是这样的:
按颜色顺时针填充数据
以下是代码:
#include <stdio.h>
main()
{
int n; //矩阵规格
int i, j; //二维数组下标
int k = 1; //提供数据,从1开始
scanf("%d", &n);
int a[n][n]; //定义一个n*n的二维数组
for(i=0; i<n/2+1; i++) //无论n为奇数还是偶数,只循环 n/2 + 1 次
{//储存数据
for(j=i; j<n-i; j++) //从左往右
a[i][j] = k++;
for(j=i+1; j<n-i; j++) //从上往下
a[j][n-1-i] = k++;
for(j=n-1-i; j>i; j--) //从右往左
a[n-1-i][j-1] = k++;
for(j=n-2-i; j>i; j--) //从下往上
a[j][i] = k++;
}
for(i=0; i<n; i++)
{//输出数据
for(j=0; j<n; j++){
printf("%3d", a[i][j]);
}
printf("\n");
}
return 0;
}