81页第二题设计魔方

#include<iostream>
#include<iomanip>
using namespace std;
class magic    
{ public:
  void getdate();           //输入初值成员函数
  void setfirstmagic();     //设置初始魔方成员函数
  void generatemagic();     //生成最终魔方成员函数
  void printmagic();        //显示魔方成员函数
private:
	int m[4][4];
	int step;
	int first;
	int sum;
};
void magic::getdate()           //输入初值成员函数
{ cout<<"请输入初始魔方起始值:";
  cin>>first;
  cout<<"请输入相邻元素之间的差值:";
  cin>>step;
}

void magic::setfirstmagic()     //设置初始魔方成员函数
{ m[0][0]=first;
  int i,j;
  for(i=0;i<4;i++)
	  for(j=0;j<3;j++)
	  { m[i][j+1]=m[i][j]+step;
	  if(i<3)
		  m[i+1][0]=m[i][j+1]+step;
	  }
}

void magic::generatemagic()    //生成最终魔方成员函数
{ sum=m[0][0]+m[3][3];
  int i;
  for(i=0;i<4;i++)
  { m[i][i]=sum-m[i][i];
    m[i][3-i]=sum-m[i][3-i];
  }
}

void magic::printmagic()        //显示魔方成员函数
{
	int i,j;
	for(i=0;i<4;i++)
	{
		for(j=0;j<4;j++)
			cout<<setw(6)<<m[i][j];
		cout<<endl;
	}
}

int main()
{ magic mag;
  mag.getdate();
  mag.setfirstmagic();
  cout<<"初始魔方:"<<endl;
  mag.printmagic();
  mag.generatemagic();
  cout<<"最终魔方:"<<endl;
  mag.printmagic();

  return 0;
}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值