我正在寻找一种优雅的方法来确定 C++ ptr 数组中哪个元素出现次数最多(模式)。
例如,在
['梨','苹果','橙子','苹果']
'apple' 元素是最常见的元素。
我之前的尝试都失败了。我不明白嵌套数组的概念。关于这里出了什么问题的任何线索?上次编译时,我得到了 0 的模式。我不是专家,所以我不知道如何“映射”事物或使用向量。
我正在尝试构建一个简单的数学 android 应用程序并学习这将帮助我开始它。
int getMode(int *students,int size)
{
int mode=0;
int count=0,
maxCount=0,
preVal;
preVal=students[0]; //prevvall holds current mode number being compared
count=1;
for(int i =1; i<size; i++) //Check each number in the array
{
if(students[i]==preVal) //checks if current mode is seen again
{
count++; //The amount of times current mode number has been seen.
if(maxCount<count) //if the amount of times mode has been seen is more than maxcount
{
maxCount=count; //the larger it mode that has been seen is now the maxCount
mode=students[i]; //The current array item will become the mode
}else{
preVal = students[i];
count = 1;
}
}
}
return mode;
}