早教吧作业答案频道 -->其他-->
C++,请求帮助!谢谢~~编写函数,给奇数阶幻方矩阵赋值.N阶幻方阵是指在N×N方阵中填充1~N2这N2个不同的数,使方阵的每一行,每一列和对角线上元素之和均相等.在主函数中设计一个循环,从键盘输
题目详情
C++,请求帮助!谢谢~~
编写函数,给奇数阶幻方矩阵赋值.N阶幻方阵是指在N×N方阵中填充1~N2这N2个不同的数,使方阵的每一行,每一列和对角线上元素之和均相等.在主函数中设计一个循环,从键盘输入的幻方阵阶数N,如果输入N为偶数,提示错误,重新输入.当输入为0时,循环结束,同时整个程序结束.如果N为奇数,则动态定义二维数组,调用函数magic求幻方阵,并在主函数中编写函数print输出幻方矩阵,编写并调用函数checking验证你求得的矩阵是否满足幻方矩阵的定义.例如:
输入:3
输出:
8 1 6
3 5 7
4 9 2
幻方通过了验证.
输入: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
幻方通过了验证.
提示:魔方阵的赋值规律如下:(a)将1放在第一行最中间的列;(b)从2开始直到N2为止的各数填在前一个数的右上方;(c)如果该位置超出最上行,则改填在最下行的对应列的位置;(d)如果该位置超出最右列,则改填在最左列的对应行的位置;(e)如果该位置既超出最上行又超出最右列,则改填在前一个数的下面;(f)如果右上角的位置上已经填了其他数据,则改填在前一个数的下面.
编写函数,给奇数阶幻方矩阵赋值.N阶幻方阵是指在N×N方阵中填充1~N2这N2个不同的数,使方阵的每一行,每一列和对角线上元素之和均相等.在主函数中设计一个循环,从键盘输入的幻方阵阶数N,如果输入N为偶数,提示错误,重新输入.当输入为0时,循环结束,同时整个程序结束.如果N为奇数,则动态定义二维数组,调用函数magic求幻方阵,并在主函数中编写函数print输出幻方矩阵,编写并调用函数checking验证你求得的矩阵是否满足幻方矩阵的定义.例如:
输入:3
输出:
8 1 6
3 5 7
4 9 2
幻方通过了验证.
输入: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
幻方通过了验证.
提示:魔方阵的赋值规律如下:(a)将1放在第一行最中间的列;(b)从2开始直到N2为止的各数填在前一个数的右上方;(c)如果该位置超出最上行,则改填在最下行的对应列的位置;(d)如果该位置超出最右列,则改填在最左列的对应行的位置;(e)如果该位置既超出最上行又超出最右列,则改填在前一个数的下面;(f)如果右上角的位置上已经填了其他数据,则改填在前一个数的下面.
▼优质解答
答案和解析
代码如下 .内容比较简单,计算过程就是你给的过程,所以不写注释了.看不懂了再问.#include#includeusing namespace std;void magic(int** magicArray, int size){ int lastRow = 0; int lastCol = size / 2; ...
看了 C++,请求帮助!谢谢~~编...的网友还看了以下:
matlab 一维数组中的连续三个数构成坐标,画出空间分布比如I(n+1)=mod(65539*I 2020-05-13 …
一个数列有如下规则:当数n是奇数时,下一个数是n+1;当数n是偶数时,下一个数是n/2.如果这列数 2020-05-16 …
已知n是一个整数,d是一个数字,n/444=0.5d7,5d7循环,问n是多少?请迅速, 2020-06-03 …
关于求映射个数的原理集合M的元素个数m,集合N的元素个数n,那么从M到N的映射个数是n的m次幂.这 2020-06-14 …
(2014•江西)将连续正整数1,2,…,n(n∈N*)从小到大排列构成一个数.123…n,F(n 2020-06-27 …
已知一组数据1,2,3,…,n(从左往右数,第1个数是1,第2个数是2,第3个数是3,依此类已知一 2020-07-10 …
N除以296等于0.d05,其中d05循环...N为整数.d为1至9当中的一个数.求N....小弟 2020-07-19 …
约瑟夫环c++.将1到m这m个自然数由小到大围成一圈,并建立一个循环双向链表.以1为起点,先沿顺时 2020-07-29 …
循环小数0.142837546与0.3957216在小数点后多少位时首次出现数字6第一个数循环节是 2020-07-31 …
1,2,.按顺序从第二个数数到第六个,共数了多少个数?按顺序第M个数数到第N个数(n>m),共数了多 2020-12-05 …