为什么我的程序总是出现一下的问题

图片说明不知道出现了什么问题

#include
#include
#include
using namespace std;
int strlen1(char u[]);
bool strstr1(char a[],char b);
struct FF
{
string first;
string second;
bool flage=true;
};
int main()
{
string u,t,x,s2='\0',s1='\0',s3='\0';
bool flag=false;
int n,m=0;
cout<<"输入全集U:";
cin>>u;
char uu[50];
strcpy(uu,u.c_str());
cout<B:";
cin>>n;
FF ff[n];
for(int i=0;i {
cin>>t;
char ch[20];
strcpy(ch,t.c_str());
for(int j=0;j {
if(ch[j]=='-')
{
j+=2;
flag=true;
}
if(flag)
{
ff[i].second+=ch[j];
}else ff[i].first+=ch[j];
}
}
cout cin>>x;
s2=x;
char xx[500];
strcpy(xx,x.c_str());
cout<<endl;
for(int k=0;k<strlen1(uu);k++)
{
for(int i=0;i<n;i++)
{
char qq[10];
strcpy(qq,ff[i].first.c_str());
for(int j=0;j<strlen1(qq);j++)
{
if(strstr1(xx,qq[j]))
{
m++;
}else break;
}
if((m==strlen1(qq))&&ff[i].flage)
{
s1+=ff[i].second;
ff[i].flage=false;
s2+=s1;
if(s2==x||s2==u)
{
cout<<"X关于F的闭包为:"<<s2<<endl;
return 0;
}else
{
x+=s1;
m=0;
s1=s3;
}
}
}
}
}

int strlen1(char ch[])
{
int k=0;
for(int i=0;i<1000;i++)
{
if(ch[i]!='\0')k+=1;
else break;
}
return k;
}
bool strstr1(char a[],char b)
{
for(int i=0;i<strlen1(a);i++)
{
if(a[i]==b)return true;
}
return false;
}

4个回答

直接断点跟踪 你代码异常了

贴出你的代码才知道,从提示上看,你的字符串有问题

struct FF里bool flage=true;也不对啊
flage不是静态成员

崩溃了,你Debug下,打个断点看看。

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