0

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

0 回答 0