#include<iostream>
using namespace std;
class magic{
public:
void getdata()
{cout<<"请输入魔方的起始值:";
cin>>first;
cout<<"请输入相邻元素之间的差值:";
cin>>step;
}
void setfirstmagic();
void generatemagic();
private:
int m[4][4];
int step;
int first;
int sum;
};
void magic::setfirstmagic()
{int i,j;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{m[i][j]=first;
first=first+step;
}
cout<<"初始魔方的值为:"<<endl;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
cout<<m[i][j]<<'\t';
if(j==3)
cout<<endl;
}
}
void magic::generatemagic()
{
int i,j;
sum=m[0][0]+m[3][3];
m[0][0]=sum-m[0][0];
m[1][1]=sum-m[1][1];
m[2][2]=sum-m[2][2];
m[3][3]=sum-m[3][3];
m[0][3]=sum-m[0][3];
m[1][2]=sum-m[1][2];
m[2][1]=sum-m[2][1];
m[3][0]=sum-m[3][0];
cout<<"生成魔方的值为:"<<endl;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
cout<<m[i][j]<<'\t';
if(j==3)
cout<<endl;
}
}
int main()
{magic A;
A.getdata();
A.setfirstmagic();
A.generatemagic();
return 0;
}