在C中寻找Ints向量的模式

所以我正在尝试制作一个基本程序来学习C的基础知识,我从0到100生成100个随机数并将它们存储在一个向量中,然后我显示总和,均值,中位数,模式,高和矢量低.除了我被卡住的模式之外,我还完成了其他所有工作.这是我到目前为止的代码.
int modefunction()
     {
         numMode = 0;
         count = 0;
         for (int n = 0; n < 100; n++)
         {
             for (int y = 0; y < 100; y++)
             {
                 if (numVector.at(y) == numVector.at(n))
                {
                    numMode = numVector.at(y);
                    count++;
                }
             }

         }
         return numMode;
     }

在那之后我陷入困境,因为在我看来它应该有效,但事实并非如此.它只是输出最后一个数字,通常为100.任何帮助都会非常感激.

解决方法

由于所有值都在0到100之间,因此您可以使用直方图有效地找到模式:
std::vector<int> histogram(101,0);
for( int i=0; i<100; ++i )
  ++histogram[ numVector[i] ];
return std::max_element( histogram.begin(),histogram.end() ) - histogram.begin();

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...