利用C语言玩转魔方阵实例教程

2020-01-06 18:07:50王冬梅

先来看看4X4方阵的解法:

魔方阵c语言,c语言输出魔方阵,奇数魔方阵c语言

简单的说,就是一个从左上由1依序开始填,但遇对角线不填,另一个由左上由16开始填,但只填在对角线,再将两个合起来就是解答了。如果N大于等于2,则以 4X4为单位画对角线,如下所示:

魔方阵c语言,c语言输出魔方阵,奇数魔方阵c语言

至于对角线的位置该如何判断,有两个公式,有兴趣的可以画图印证,如下:

左上至右下:j % 4 == i % 4

右上至左下:(j % 4 + i % 4) == 1

8阶魔方阵(N=2)的结果如下:

魔方阵c语言,c语言输出魔方阵,奇数魔方阵c语言


#include

#include

#define N 8

int main(void) {

int i, j;

int square[N+1][N+1] = {0};

for(j = 1; j <= N; j++) {

for(i = 1; i <= N; i++){

if(j % 4 == i % 4 || (j % 4 + i % 4) == 1)

square[i][j] = (N+1-i) * N -j + 1;

else

square[i][j] = (i - 1) * N + j;

}

}

for(i = 1; i <= N; i++) {

for(j = 1; j <= N; j++)

printf("%2d ", square[i][j]);

printf(" ");

}

return 0;

}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对ASPKU的支持。


注:相关教程知识阅读请移步到C++教程频道。