?? 奇數幻方.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 + -