#include<iostream>
using namespace std;
class MergeList
{
int *a;
int size;
public:
MergeList(int size,int init)
{
this->size=size;
a=new int[size];
for(int i=0;i<size;i++)
{
a[i]=init;
}
}
MergeList()
{
}
MergeList(const MergeList&obj)
{
this->size=obj.size;
a=new int[size];
for(int i=0;i<size;i++)
a[i]=obj.a[i];
}
void SetData(int&index, int&data)
{
a[index]=data;
}
int&GetSize(){return size;}
~MergeList()
{
delete []a;
}
MergeList&operator=(const MergeList&obj)
{
this->size=obj.size;
a=new int[size];
for(int i=0;i<size;i++)
a[i]=obj.a[i];
return *this;
}
bool Is_Same(int &element);
MergeList AddList(const MergeList&obj);
void Show()
{
for(int i=0;i<size;i++)
cout<<a[i]<<" ";
cout<<endl;
}
};
bool MergeList::Is_Same(int &element)
{
for(int i=0;i<size;i++)
{
if(a[i]==element)
return true;
}
return false;
}
MergeList MergeList::AddList(const MergeList&obj)
{
MergeList C;
int m=0,i=0;
C.size=size+obj.size;
C.a=new int[C.size];
if(size<obj.size||(size==obj.size))
{
for(i=0;i<size;i++)
{
C.a[i]=a[i];
}
}
else
{
for(i=0;i<obj.size;i++)
{
C.a[i]=obj.a[i];
}
}
for(int j=0;j<obj.size;j++)
{
if(!this->Is_Same(obj.a[j]))
{
C.a[i+m]=obj.a[j];
m++;
}
}
C.size=i+m;
return C;
}
int main()
{
int LengthA,LengthB;
cout<<"input length a:";
cin>>LengthA;
cout<<"input length b:";
cin>>LengthB;
MergeList A(LengthA,2),B(LengthB,2),C;
cout<<"input A:"<<endl;
for(int i=0;i<A.GetSize();i++)
{
int a;
cin>>a;
A.SetData(i,a);
}
cout<<"input B:"<<endl;
for(int j=0;j<B.GetSize();j++)
{
int b;
cin>>b;
B.SetData(j,b);
}
C=A.AddList(B);
cout<<"合并后:"<<endl;
C.Show();
}
追问这是c语言吗??😳😳
追答这是C++,不过我觉得其实用C语言写没有用C++写这么麻烦...两个函数就可以搞定!
你可以用这个跟你们的老师装一下!
就说你自己自学C++,他会对你刮目相看的
追问要用c语言的指针…被识破了怎么办?😂😂
追答我想你应该看到了,这里面有用很多指针来操作!
你们的老师就算知道不是你自己写的也不会说你的!
1:鼓励你学习岂不更好!
2:相信你可以完成岂不是更好!