C语言 七阶魔方阵

C语言 七阶魔方阵,第1张

题目描述:

用数组实现7阶魔方矩阵。

所谓的N阶魔方矩阵是指把1~N*N的自然数按一定方法排列成N*N的矩阵,使得:任意行、任意列以及两个对角线上的数之和都相等(N为奇数)。

例如下面的5阶魔方矩阵,任意行、任意列以及两个对角线上的数之和都为65。

5阶魔方如下: 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 奇数阶魔方矩阵的算法如下: 第1步:将1放入第一行的正中处。

第2步:按如下的方法依次将第i个数(i从2到N*N)放到合适的位置上。

 如果第i-1个数的右上位置没有放数,则将第i个数放到前一个数的右上位置。

 如果第i-1个数的右上位置已经有数,则将第i个数放到第i-1个数的下一行,列数相同的位置。

**输出格式要求:"\n%d阶魔方矩阵如下:\n" 输出7个"===="后换行 "%4d" 输出7个"===="后换行

习题解答:

#include
#include
#define N 7
int main(){
    int a[N][N] = {0};
    a[0][N/2] = 1;
    int cnt = 1;
    int temp_i,temp_j;
    temp_i = 0;
    temp_j = N/2;
    while(cnt

需要注意的两个点是:

1)避免数组越界的方法是:对要生成的位置i,j取余N。

2)避免负数的方法是:可以用abs绝对值函数处理后再取余,或取余之前+N;

附上:

C语言 指针学习笔记_唐楚江之歌的博客-CSDN博客https://blog.csdn.net/tangchujiang/article/details/124143283?spm=1001.2014.3001.5502

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/674884.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-19
下一篇 2022-04-19

发表评论

登录后才能评论

评论列表(0条)