![]() |
#2
ciweitou1632010-05-19 13:50
![]() #include<iostream> using namespace std; class Set { public: Set(){PC=0;} Set(Set &s); void Empty() {PC=0;} int IsEmpty() {return PC==0;} //(1) int IsMemberOf(int n); int Add(int n); void Print(); friend void reverse(Set *m); private: int elems[100]; int PC; }; int Set::IsMemberOf(int n) //检测n是不是elems中的元素 是返回1 否返回0 { for (int i=0;i<PC;i++) if(elems[i]==n) return 1; return 0; } int Set::Add(int n) //给elems中添加元素n { if(IsMemberOf(n)) return 1; else if(PC>=100) return 0; else { elems[PC++]=n; return 1; } } Set::Set(Set &p) //把set类p的elems的元素赋给p->this类(2) { PC=p.PC; for(int i=0;i<PC;i++) elems[i]=p.elems[i]; } void Set::Print() //输出elems中的元素 { cout<<"{"; for (int i=0;i<PC-1;i++) cout<<elems[i]<<","; if(PC>0) //为了输出最后一个元素是不输出"," cout<<elems[PC-1]; cout<<"}"<<endl; } void reverse(Set *m) //元素对调 { int n=m->PC/2; for(int i=0;i<n;i++) { int temp; temp=m->elems[i]; m->elems[i]=m->elems[m->PC-i-1]; m->elems[m->PC-i-1]=temp; } } int main(void) { Set A; cout<<A.IsEmpty()<<endl; //输出 1 调用(1) A.Print(); //输出 {} Set B; for(int i=1;i<=8;i++) B.Add(i); B.Print(); //输出 {1,2,3,4,5,6,7,8} cout<<B.IsMemberOf(5)<<endl; B.Empty(); //5在集合中 返回1 for(int j=11;j<20;j++) B.Add(j); Set C(B); //调用 (2) C.Print(); //输出{11,12,13,14,15,16,17,18,19} reverse (&C); C.Print(); //输出{19,18,17,16,15,14,13,12,11} return 0; } 有错的地方,还请大家指正 ![]() |
#include<iostream.h>
class Set
{
public:
Set(){PC=0;}
Set(Set &s);
void Empty() {PC=0;}
int IsEmpty() {return PC= =0;}
int IsMemberOf(int n);
int Add(int n);
void Print();
friend void reverse(Set *m);
private:
int elems[100];
int PC;
};
int Set::IsMemberOf(int n)
{
for (int i=0;i<PC;i++)
if(elems[i]= =n)
return 1;
return 0;
}
int Set::Add(int n)
{
if(IsMemberOf(n))
return 1;
else if(PC>=100)
return 0;
else
{
elems[PC++]=n;
return 1;
}
}
Set::Set(Set &p)
{
PC=p.PC;
for(int i=0;i<PC;i++)
elems[i]=p.elems[i];
}
void Set::Print()
{
cout<<”{“;
for (int i=0;i<PC-1;i++)
cout<<elems[i]<<”,”;
if(PC>0)
cout<<elems[PC-1];
cout<<”}”<<endl;
}
void reverse(Set *m)
{
int n=m->PC/2;
for(int i=0;i<n;i++)
{
int temp;
temp=m->elems[i];
m->elems[i]=m->elems[m->PC-i-1];
m->elems[m->PC-i-1]=temp;
}
}
void main()
{
Set A;
cout<<A.IsEmpty()<<endl;
A.Print();
Set B;
for(int i=1;i<=8;i++)
B.Add(i);
B.Print();
cout<<B.IsMemberOf(5)<<endl;
B.Empty();
for(int j=11;j<20;j++)
B.Add(j);
Set C(B);
C.Print();
reverse (&C);
C.Print();
}
1
{}
{1,2,3,4,5,6,7,8}
1
{11,12,13,14,15,16,17,18,19}
{19,18,17,16,15,14,13,12,11}
函数执行的过程是怎样的?
为啥会输出这个结果呢
[ 本帖最后由 realll 于 2010-5-19 13:01 编辑 ]