怎样用C++找出一个数组中的相同的数的个数??

如题所述

循环就好了,这是最简单的算法。例如数组a为待处理数组。
int* b = (int*)malloc(n*sizeof(int));
for(int i = 0;i < n;i++)
{
for(int j = 0;j < m;j++)
{
if(a[n]==b[j])
b[j]++;
}
if(j==m)
b[m] = 1;
m++;
}
如果需要知道重复的数字是什么,则b定义为结构体数组
struct record
{
int data,
int count
};
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-08
一个数组中可能有多对相同的数,是否应传入一个数作为要查找的数
int find(int a[] ,int num ,int n) //num为数组元素个数,n为要查找的数
{
int count=0;
for(int i=0;i<num;i++)
{
if(a[i]==n)
count++;
}
return count ;

}
}追问

n是不定的~ 是其中的相同的数,可能有多个数的~

追答

你是想实现什么功能,是要把所有的相同的情况都输出吗
void find(int arr[] , int num )
{
for(int i=0;i<n-1;i++)
{
int t= arr[i] ;
int n=0;
for(int j=i+1;j<n;j++)
{
if(t==arr[j])
n++;
}
cout<<t<<"的个数为"<<n<<endl;
}
}
写的比较烂,效率很低

相似回答