中易网

C++ a magic square 请看我的程序错在哪里

答案:2  悬赏:60  
解决时间 2021-04-21 02:37
输入大于2的奇数n,输出n阶幻方。n阶幻方是由自然数1到n*n构成的方阵,幻方的各行、各列及对角线之和都相等。生成奇数阶幻方的斜排法:1至n*n依次写到各(折断的)对角线,将1放在第1行中间,向右上走,写完一条对角线后下移到下一个条对角线。

#include
using namespace std;

void square(int arry[20][20],int n)
{
for(int row=0;row<=19;row++)
{
for(int col=0;col<=19;col++)
{arry[row][col]=0;}
}
int row = 1;
int col=(n+1)/2;
for(int i=1;i<=n*n;i++)
{ if(arry[row][col]==0&&row>0&&col else if(arry[row][col]!=0){col++; arry[row][col]=i;}
else if(col==n+1&&row!=0){col=1; arry[row][col]=i;}
else if(col!=n+1&&row==0){row=n; arry[row][col]=i;}
else{row=2;col=n; arry[row][col]=i;}

row--;
col++;
i++;
}

}
void print(int arry[20][20],int n)
{ for(int row=1;row<=n;row++)
{for(int col=1;col<=n;col++)
cout< cout<}

}
int main()
{ int arry[20][20];
int n;
cout<<"Please input odd number\n";
cin>>n;
while(n%2==0)
{
cout<<"illegal number please input again\n";
cin>>n;
}
square(arry,n);
print(arry,n);
system("pause");
return 0;

}
就是得不出偶数来,求解
最佳答案
col++下面的i++多加了一次i,因为i的值在for循环中已经加过了一次!
全部回答
支持一下感觉挺不错的
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么汽车刚发动时没有高怠速 火花塞 分缸线
英雄岛中宠物拾取和装饰物为什么过期时间不对
新昌在中国经济百强县里排名第几?
一首女生唱的英语歌里面好像有句歌词是什么ho
北海市铁山港区网页设计、北海市铁山港区县网
从恩平到深圳罗湖东门车站有几趟车
喔补祖插怎么去啊,有知道地址的么
我们这有俩千多亩地买个旋地车能赚到钱吗
山西运城办一张中国电信3G手机卡需要多少钱
上海洛场路到虹桥火车站怎么走
帮忙想个作文题:最美的......
空间怎么搞非主流?
公司合同中能否指定私人账户收款
玉溪二小区150平米满两年过户费总共多少钱
崇明长兴岛凤凰镇
推荐资讯
山西运城市职业技能学校是公办吗?
有没有像高达一样的动漫呀
什么是物体的状态
为了防冻,小林在一小树上绕上稻草绳,树干的平
大叶蕙兰买回来开花为什么第二年不开花
有没有像楚汉棋缘那样的五子棋软件?
毛洞窝怎么去啊,有知道地址的么
大学生给高中生当家教,靠谱不?
我在网上买的压缩面膜一泡爽肤水就破了,还能
当你的眼泪要掉下来时,又不能让它掉下来该怎
今年流行的新娘发型 森女清新范儿
金德ppr水管质量问题
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?