注册 登录
编程论坛 C++教室

运行一半奔溃了

愿o圆o安 发布于 2017-04-05 22:22, 2226 次点击
#include<iostream.h>

class magic
{
public:
      void getdata();
      void setfirstmagic();
      void generatemagic();
      void printmagic();
private:
  int m[4][4];
  int step;
  int first;
  int sum;
};

void magic::getdata()
{
    cout<<"please enter first=";
    cin>>first;
    cout<<"please enter step=";
    cin>>step;
}

void magic::setfirstmagic()
{
   
    for(int i=0;i<4;i++)
        for(int j=0;j<4;j++)
        {
            while(i==0&&j==0)
            {
                m[0][0]=first;
            }
            while(j==0)
            {
                m[i][j]=m[i-1][3]+step;
            }
            m[i][j]=m[i][j-1]+step;
        }
   
}

void magic::generatemagic()
{
    sum=m[0][0]+m[3][3];
    for(int i=0;i<4;i++)
        for(int j=0;j<4;j++)
        {
            if(j==(4-i)||j==i)
                m[i][j]=sum-m[i][j];
        }
}

void magic::printmagic()
{
    for(int i=0;i<4;i++)
        for(int j=0;j<4;j++)
        {
            cout<<m[i][j]<<"     ";
        }
        cout<<endl;
}

void main()
{
    magic mf;
     mf.getdata();
     mf.setfirstmagic();
     mf.generatemagic();
     mf.printmagic();
}
1 回复
#2
yuyu124092017-04-07 09:50
while(i==0&&j==0)
 while(j==0)
进去就是while死循环肯定出不来。
1