版权声明:本文为博主原创文章未经博主允许不得转载。 /xujing/article/details/
版权声明:本文为博主原创文章未经博主允许不得转载。 /xujing/article/details/
要求输出1~n?的自然数构成的魔方阵。
魔方阵古代又称“纵横图”,是指组成元素为自然数1、2…n2的平方的n×n的方阵其中每个元素值都不相等,且每行、每列以忣主、副对角线上各n个元素之和都相等
此处先写简单一点的奇阶魔方阵偶数阶的算法更复杂,暂不讨论
奇阶魔方阵的排列方法:
⑴将1放在第一行中间一列;
⑵从2开始直到n×n止各数依次按下列规则存放;每一个数存放的行比前一個数的行数减1,列数加1;
⑶如果上一个数的行数为1则下一个数的行数为n(指最下一行);
⑷当上一个数的列数为n时,下一个数嘚列数应为1行数减去1;
⑸如果按上面规则确定的位置上已有数,或上一个数是第一行第n列时则把下一个数放在上一个数的下面。
⑴构造一个n阶魔方阵雏形即n*n的动态二维数组;
⑵编写函数实现魔方阵的排列算法;
⑶调用函数输出魔方阵。
malloc函数:分配内存空间给动态数组(使用后需在函数最后用free语句释放所占用的内存)
memset函数:给数组的所有元素赋初值