设计一个4*4魔方程序,让魔方各行值的和等于各列值的和,并且等于两对角线的和
class magic
{public:
void getdata();
void setfristmagic();
void generatemagic();
void printmagic();
private:
int m[4][4];
int step;
int frist;
int sum;
};
void magic::getdata()
{step=2;
frist=1;
sum=32;}
void magic::setfristmagic()
{int a;int b;
a=frist;
b=step;
for(int i=0;i<4;i++)
{for(int j=0;j<4;j++)
{m[i][j]=a;
a=a+b;}
}
}
void magic::generatemagic()
{for(int i=0;i<4;i++)
{m[i][i]=sum-m[i][i];
m[i][3-i]=sum-m[i][3-i];
}}
void magic::printmagic()
{for(int i=0;i<4;i++)
{for(int j=0;j<4;j++)
cout<<m[i][j]<<" ";
cout<<endl;}}
int main()
{
magic mag1;
mag1.getdata();
mag1.setfristmagic();
mag1.generatemagic();
mag1.printmagic();
system("pause");
return 0;}