📄 奇数幻方.cpp
字号:
#include<iostream.h>
#include<iomanip.h>
//const int M=508;
void main()
{
int i,j;
int N;
cout<<"请输入一个正奇数:"<<endl;
cin>>N;
int count=0;
while(N%2==0||N<0)
{
count++;
if(count>=3)
{
cout<<"不能输入偶数或负数,";
}
cout<<"请输入一个正奇数:"<<endl;
cin>>N;
}
int **hf=new int*[N];//定义二维数组动态分配空间
for(i=0;i<N;i++)
hf[i]=new int[N];
for(i=0;i<N;i++)//二维数组赋初值
for(j=0;j<N;j++)
hf[i][j]=0;
int number=1;
i=0;
j=(N-1)/2;
hf[i][j]=number;
while(number<N*N)//向幻方里写数
{
int ii,jj;
ii=i;
jj=j;
i=i-1;
if(i==-1) i=N-1;
j=j+1;
if(j==N) j=0;
if(hf[i][j]==0)
hf[i][j]=++number;
else
{
j=jj;
i=ii+1;
if(i==N) i=0;
hf[i][j]=++number;
}
}
cout<<N<<"阶幻方:"<<endl;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
cout<<ends<<setw(4)<<hf[i][j];
cout<<endl;cout<<endl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -