C++的程序遇到了问题
#include<iostream>using namespace std;
class ARR
{
int a[100];
int m;
public:
ARR(int x[],int s)
{
m=s;
for(int i=0;i<m;i++)
a[i]=x[i];
}
void delete1();
void show();
};
void ARR::delete1()
{
int *p=a;
for(;p<p+m-1;p++)
{
if(*p==*(p+1))
{
for(int i=1;i<m-1;i++)
{
*(p+i)=*(p+i+1);
}
m--;
}
}
}
void ARR::show()
{
for(int i=0;i<m;i++)
cout<<a[i]<<" ";
cout<<endl;
}
int main()
{
int g[16]={1,2,2,3,4,4,5,6,6,7,8,8,8,9,10,10};
ARR v(g,16);
v.show();
v.delete1();
v.show();
return 0;
}
要求是把数组G删掉重复的数,并把经过删除处理的数组再保存到原数组。。是这样的操作
原程序是这样的,但是这里是编译过了但是执行不过,感觉好像是DELETE1函数出了问题,但是不知道问题究竟在什么地方。。
我是个新手来的,请哪位高手可以帮忙解释的清楚一点,谢谢