首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于数组,怎么将一个整型数组中的重复数字找出来并记录其重复的次数

2012-03-23 
关于数组,如何将一个整型数组中的重复数字找出来并记录其重复的次数?我原来是通过排序后比较做的,发现只能

关于数组,如何将一个整型数组中的重复数字找出来并记录其重复的次数?
我原来是通过排序后比较做的,发现只能把原来数组里的重复项去掉.
而要求是只出现一次的数字不用复制,只复制出现过两次以上的,而且要把重复的次数记录下来.不知道该如何实现.

请教各位高手了


[解决办法]
void find_dupli(int * n ,int size, map <int ,int> &dupmap)
{
if (n==NULL)
{
return;
}

for (int i = 0 ; i < size ; i++)
{
map <int ,int > ::iterator itr = dupmap.begin();
for ( ; itr!= dupmap.end();itr++)
{
if (dupmap.find(n[i])!=dupmap.end())
{
dupmap[n[i]]+=1;
break;
}
}
if (itr==dupmap.end())
{
dupmap[n[i]]=1;
}
}
}
[解决办法]
假设数组已有序
int i,j,index,a[10]={...};
for(i=0;i <10;i++)
{
for(j=1,index=i;a[i]==a[i+j];j++)
{
i++;
}
printf( "a[%d] repeated %d times! ",index,j);
}

热点排行