永发信息网

编程序打印N阶魔方数阵!!

答案:2  悬赏:40  手机版
解决时间 2021-06-05 19:33
谁能帮我边个打印N阶魔方数阵的C++程序?谢谢!!!
最佳答案

给你个N阶奇数幻方.


#include <iostream>
using namespace std;


void main()
{
int k,p,q,n,s[19][19];

do{
cout<<"请输入阶数n(n为小于20的正奇数):";
cin>>n;
}while(n<1||n>19||n%2==0);

p=n-1;
q=(n-1)/2;

for(k=1;k<=n*n;k++)
{
s[p%n][q%n]=k;

if(k%n==0) p--;
else
{
p++;
q++;
}
}

cout<<endl<<"========阶数为"<<n<<"的魔方为========"<<endl;
for(p=0;p<n;p++)
{
for(q=0;q<n;q++)
{
cout.width(4);
cout<<s[p][q];
}
cout<<endl;
}
cout<<"==============================="<<endl;
}


全部回答
#include <stdio.h> #define MAX 16 void main() { int a[MAX][MAX] = {0}; int row, line, k, n; scanf("%n", &n);//n是奇数 line = 1; row = n/2+1; a[line][row] = 1; for(k = 2; k <= n*n; k++) { line--; if(line < 1) line = line + n; row++; if(row > n) row = row - n; if (a[line][row] != 0) { line += 2; row -= 1; if(line > n) line = line - n; if(row < 1) row = row + n; } a[line][row] = k; } for(line = 1 ;line <= n; line++) { for(row = 1 ;row <= n; row++) printf("%5d",a[line][row]); printf("\n"); } }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么电脑重装了有很多的漏洞啊?
钟祥市荆门乐福生超市(七里街店)地址在哪里啊
刷牛和试验场在那个频道?
如何做好一名CIO?
靠自己赚钱治病,我还要等几年呢?
杭州哪儿有诺曼奇?
宁波象山丹城有租帐篷么 宁波鄞州的 象山的
He often helps me with my English.对helps
爱丽丝学园漫画全集
《仙剑1》的《比翼鸟》的电视原声版
鼓楼区开封鸿发副食地址有谁知道?有点事想过
天龙八部这BB好吗??
世界在哪年形成`?
河北省专接本
上海戏剧学院考分是多少?
推荐资讯
猫比较性感,还是狗比较性感
现在DNF哪个辅助最好
如何走好人生每一步?
日记内容字数
请大家分析一下这件事情
封包怎么解密
除了i酷,还有什么软件可以下载优酷上面的视
杭州滨江什么时候有租车点。。。
请写出公文处理流程的名称
抢车位能更换其它汽车吗?
猫是用什么来保持平衡的!
Q版阳光牧场IP
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?