求助 怎么让while循环中有输入的时候让程序完成后停下来 题目中没有结束标志 晕

#include
#include
#include
using namespace std;
void output();
int check();
int a[1000]={0},n=0,flag=1,g;
char b[50],c[50],d;
int init();
void search(int m);

int main()
{
while(init())
{
cout <<"["<<endl;
search(0);
cout <<"]"<<endl;
flag=1;
n=0;
g=0;
}
return 0;
}

int check()
{
int k=0,top=-1,m=0,r=0;
char st[50];
flag=1;
for (int i=0;i<n;i++)
{
if (a[i]==1)k++;

}

if (k==n/2)
{
        for (int i=0;i<n;i++)
    {
        if (a[i]==1) top++,st[top]=b[r],r++;
        else{
            if (st[top]==c[m])
            {
                m++;
              top--;
            }
            else {
                 flag=0;
                 break;
            }
        }
    }
}
else flag=0;
free(st);
return (flag);

}

int init ()
{
g=1;
int k=0;
char h;
while((d=getchar())!='\n')
{
b[k++]=d,n++;
}
k=0;
while((d=getchar())!='\n')
{
c[k++]=d,n++;
}
return g;
}
void search(int m)
{
if(m==n){
check();
if (flag) output();
}

else
{
    a[m]=1;
    search(m+1);
    a[m]=0;
    search(m+1);
}

}
void output()
{
for (int i=0;i<n;i++)
{
if (a[i]==0) cout <<"o";
else cout <<"i";
}
cout <<endl;
}

1个回答

break吧。图片说明图片说明图片说明图片说明图片说明图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!