这是个元素去重问题。我的代码如下:
/************************************************************************/
/* 21chenxb' work
2010-6-26
VC++6.0
C加加爱好者团
/************************************************************************/
#include <iostream>
using namespace std;
void main()
{
int num[10000];//你说上万就一万吧,呵呵
//按照从1~100,每个数重复100次,这样不用排序了
//我来初始化其中的数值
int k=1;
for (int i=0;i<10000;i+=100)
{
for (int j=0;j<100;j++)
{
num[i+j]=k;
}
k++;
}
/*
//输出测试
for (i=0;i<10000;i++)
{
cout<<num[i]<<" ";
if ((i+1)%10==0)
{
cout<<endl;
}
}
*/
//下面我开始去重
//先定义个用来存放元素的动态数组,没处理之前,不知道会有多少元素,所以使用动态数组
int *a=new int[];
a[0]=num[0];//先把第一个元素放进来
int t=1;
for (i=1;i<10000;i++)
{
if (num[i]==num[i-1])//如果当前元素和前一个元素相同,不放(已经排好序的,只要判断前一个就可以了)
{
}
else
{
a[t]=num[i];
t++;
}
}
//处理完毕测试下
for (i=0;i<t;i++)
{
cout<<a[i]<<" ";
if ((i+1)%10==0)
{
cout<<endl;
}
}
}
温馨提示:答案为网友推荐,仅供参考