![]() |
#2
liang8908062009-09-11 11:05
|
排序后把相同的元素删除
整个代码是这样的

#include "stdafx.h"
using namespace std;
class ARR
{
int m; //数组实际元素个数
int a[100]; //存放原始数组以及结果数组
int t[100]; //存放每个数据重复次数
public:
ARR(int c[],int size)
{
m=size;
for(int i=0;i<m;i++)
{
a[i]=c[i];
t[i]=0;
}
}
void stl(); //把数组元素从小到大排序
void delsame(); //完成数组a中相同元素的删除工作 以及统计重复次数工作
void show() //输出数组
{
for(int i=0;i<m;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
}
void showT()
{
for(int i=0;i<m;i++)
{
cout<<a[i]<<"出现了 "<<t[i]<<"次";
if(((i+1)%3)==0)
cout<<endl;
}
}
};
void ARR::stl() //类外定义函数 完成数组排序工作
{
int i,j,temp;
for(i=0;i<m-1;i++)
{
for(j=i+1;j<m-1;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
};
void ARR::delsame() //在类的外部定义函数,完成数组a中相同元素的删除工作
{
int i,j;
for(i=0;i<m-1;i++)
{
t[i]+=1; //统计该元素出现次数
if(a[i]==a[i+1])
{
for(j=i+1;j<m-1;j++)
{
a[j]=a[j+1];
}
m--;
i--;
}
}
};
int _tmain(int argc, _TCHAR* argv[])
{
int b[100];
int i;
cout<<"请输入一组整数,数量在100以内"<<endl;
for(i=0;i<100;i++)
{
cin>>b[i];
if(b[i]=='p')
break;
}
ARR v(b,i);
v.show();
v.delsame();
v.show();
v.showT();
return 0;
}
using namespace std;
class ARR
{
int m; //数组实际元素个数
int a[100]; //存放原始数组以及结果数组
int t[100]; //存放每个数据重复次数
public:
ARR(int c[],int size)
{
m=size;
for(int i=0;i<m;i++)
{
a[i]=c[i];
t[i]=0;
}
}
void stl(); //把数组元素从小到大排序
void delsame(); //完成数组a中相同元素的删除工作 以及统计重复次数工作
void show() //输出数组
{
for(int i=0;i<m;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
}
void showT()
{
for(int i=0;i<m;i++)
{
cout<<a[i]<<"出现了 "<<t[i]<<"次";
if(((i+1)%3)==0)
cout<<endl;
}
}
};
void ARR::stl() //类外定义函数 完成数组排序工作
{
int i,j,temp;
for(i=0;i<m-1;i++)
{
for(j=i+1;j<m-1;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
};
void ARR::delsame() //在类的外部定义函数,完成数组a中相同元素的删除工作
{
int i,j;
for(i=0;i<m-1;i++)
{
t[i]+=1; //统计该元素出现次数
if(a[i]==a[i+1])
{
for(j=i+1;j<m-1;j++)
{
a[j]=a[j+1];
}
m--;
i--;
}
}
};
int _tmain(int argc, _TCHAR* argv[])
{
int b[100];
int i;
cout<<"请输入一组整数,数量在100以内"<<endl;
for(i=0;i<100;i++)
{
cin>>b[i];
if(b[i]=='p')
break;
}
ARR v(b,i);
v.show();
v.delsame();
v.show();
v.showT();
return 0;
}