[求助]一个C++程序-->feng1256转移
我是C++的初学者,这是我编的一个对集合进行各种操作的程序,编译的时候没有错误,但最后执行时就有问题了,我想可能是这几个函数的问题,可是我不知道怎么改,各位高手帮个忙吧,这几天就要交了#include <iostream.h>
const int SETSIZE=50;
struct Set{
int m[SETSIZE+1];
int size;
};
enum Boolean{False,True};
void InitSet(Set &s)
{
s.size=0;
}
void Insert(Set &s,int n)
{
s.m[s.size]=n;
}
void InitSet(Set &s,int a[],int n)
{
int i;
for(i=0;i<n;i++)
s.m[i]=a[i];
}
void Delete(Set &s,int n)
{
for(int i=0;i<s.size;i++)
if(s.m[i]==n) s.m[i]=s.m[i+1];
}
Set operator +(Set s1,Set s2)
{
Set s;
int k;
for(int i=0;i<s1.size;i++)
s.m[i]=s1.m[i];
k=i;
for(int j=0;j<s2.size;j++)
for(i=0;i<s1.size;i++)
if(s.m[i]!=s2.m[j])
{s.m[i]=s2.m[j];i++;}
return s;
}
Set operator *(Set s1,Set s2)
{
Set s;
int k=0;
for(int i=0;i<s1.size;i++)
for(int j=0;j<s2.size;j++)
if(s1.m[i]==s2.m[j])
{s.m[k]=s1.m[i];k++;continue;}
return s;
}
Boolean operator ^(int elt,Set s)
{ int k;
for(int i=0;i<s.size;i++)
if(s.m[i]==elt)
k=1;
else
k=0;
if(k=1) return True;
else return False;
}
ostream& operator <<(ostream& ostr,Set &s)
{
ostr<<s.m<<endl;
return ostr;
}
void main()
{
Set x,y,z;
int a[5]={2,5,10,20,50};
InitSet(x);
Insert(x,8);
Insert(x,a[3]);
InitSet(y,a,5);
cout<<x<<y<<endl;
z=x+y;cout<<z;
z=x*y;cout<<z;
if(10^y)
cout<<"True"<<endl;
else
cout<<"False"<<endl;
Delete(y,20);
cout<<y;
}