输出“魔方阵”。
发布网友
发布时间:2024-10-06 19:17
我来回答
共1个回答
热心网友
时间:2024-10-10 06:19
#include <iostream>
using namespace std;
#define N 40
class TSORT{
int a[N][N];
int m;
public:
TSORT(int x[N][N],int b){
m=b;
a[N][N]=x[N][N];
}
void fun();
void print(){
int i,j;
for(i=1;i<=m;i++){
for(j=1;j<=m;j++)
cout<<a[i][j]<<"\t";
cout<<endl;
}
cout<<endl;
}
};
void TSORT::fun(){
int i,j,k;
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
a[i][j]=0;
j=m/2+1;
a[1][j]=1;
for(k=2;k<=m*m;k++){
i=i-1;j=j+1;
if((i<1)&&(j>m)){
i=i+2;j=j-1;
}else{
if(i<1)i=m;
if(j>m)j=1;
}
if(a[i][j]==0)
a[i][j]=k;
else{
i=i+2;j=j-1;
a[i][j]=k;
}
}
}
int main(){
int x[N][N]={0};
int p=1,n;
while(p==1){
cout<<"enter n(奇数):";
cin>>n;
if((n!=0)&&(n<=N)&&(n%2!=0))
p=0;
}
cout<<n<<endl;
TSORT s(x,n);
s.fun();
s.print();
return 0;
}