这段代码怎么不能正确运行?cpp

来源:百度知道 编辑:UC知道 时间:2024/06/28 17:04:33
#include<iostream>
#define N 4
using namespace std;
int count=0;
class zhan
{
public:
zhan(int n,int m);
void in();
void out();
void balance();
void display();
void decide();
private:
int step[2*N];
int instep;
int outstep;
};
zhan::zhan(int n=0,int m=0){
int i;
instep=m;
for(i=0;i<2*N;i++)
step[i]=0;
step[0]=n;
}
void zhan::decide(){
if(instep+outstep==2*N)
display();
else{
if(instep==outstep)
in();
else{
if(instep==N)
out();
else balance();
}
}
}
void zhan::in(){
step[outstep+instep]=1;
instep++;
if(outstep+instep>2*N)
cout<<"wrong in"<<endl;
else decide();
}
void zhan::out(){
step[outstep+instep]=2;
outstep++;
if(outstep+instep>2*N)
cout<<"wrong

outstep 没有初始化。

zhan::zhan(int n=0,int m=0){
int i;
instep=m;
outstep=n; // 加
for(i=0;i<2*N;i++)
step[i]=0;
step[0]=n;
}

数组越界了.

你最好问题的时候把你的程序说清楚.什么注释也没有,看起来累.