1、九宫格简介
九宫格要求每一行每一列斜对角的值相加均相等,
核心代码 : *(*(arr + (h + i + j + N) % N) + (l + i - j + N) % N) = num++
或者 arr[ (h + i + j + N) % N ][ (l + i - j + N) % N] = num++
2、示例代码
#include <stdio.h>
#define N 5 //九宫格阶数
void main()
{
int arr[N][N] = {0};
int num = 1;
int h, l;
h = N / 2 + 1;
l = N / 2;
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
*(*(arr + (h + i + j) % N) + (l + i - j + N) % N) = num++;
}
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
printf("%d\t", arr[i][j]);
putchar('\n');
}
}
3、运行结果