问题描述
- 求助 怎么让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;
}
解决方案
时间: 2024-08-02 11:53:53