三阶(奇数)魔方阵填充规则:
- 1放在第一行中间
- 当前数字放在前一个数字的上一行后一列
- 如果当前位置已经有值,则放在前一个数字的下一行同列
举例:
1放在第一行中间,2放在1的上一行后一列,我们把边界看成环形的,所以2就放在最后一行的后一列,依次类推。
编写代码时应注意:
1.在写代码的过程中,一定要注意把方针当成环形处理,如果没有考虑到这个情况,容易造成越界。
2.用0来标记格子中已有值。
代码如下:
#include<stdio.h>
void MagicSquare()
{
#define ROW 3//适合奇数的魔方阵
#define COL ROW
int arr[ROW][COL]={0};
int row = 0;
int col = ROW/2;
arr[row][col] = 1;//1
for(int i=2;i<ROW*COL;i++)
{
//环形处理
r