如何检测指针数组中出现次数最多的元素?

时间:2013-05-08 03:10:34

标签: c++ arrays pointers

我正在寻找一种优雅的方法来确定哪个元素在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; 
}

0 个答案:

没有答案