2 jian yun rui Jian_Yun_Rui 于 2016.04.11 23:21 提问

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

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

#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个回答

caozhy
caozhy   Ds   Rxr 2016.04.11 23:33

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

qq423399099
qq423399099   Ds   Rxr 2016.04.12 11:28

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

VisualEleven
VisualEleven   Ds   Rxr 2016.04.14 17:11

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

oyljerry
oyljerry   Ds   Rxr 2016.04.11 23:22

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!