/*************************
** 功能:输出魔方 **
*************************/
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int n,i,j,k,a[100][100],x,y;
int temp=1;
cout<<"请输入魔方的阶数:(必须是奇数)"<<endl;
cin>>n;
while(n%1||!(n%2))
{
cout<<"很遗憾,只能是奇数,请重新输入:";
cin>>n;
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
a[i][j]=0;
cout<<"输出魔方:"<<endl;
j=0;
i=n/2;
a[i][j]=temp;
for(x=0;x<n;x++)
{
for(y=0;y<n;y++)
{
cout<<setw(4)<<a[x][y];
}
cout<<endl;
}
cout<<endl;
for(k=0;k<n*n;k++)
{
i=i-1;
if(i<0)
{ i=n-1;}
j=j-1;
if(j<0)
{j=n-1;}
if(a[i][j]!=0)
{
j=j+1;
if(j>=n)
{j=0;}
i=i+1;
if(i>=n)
{i=0;}
j=j+1;
if(i>=n)
{i=0;}
}
temp=temp+1;
a[i][j]=temp;
for(x=0;x<n;x++)
{
for(y=0;y<n;y++)
{
cout<<setw(4)<<a[x][y];
}
cout<<endl;
}
cout<<endl;
}
return 0;
}