用C++求出任意一组数据中的众数,程序有问题,望大师改正。

liujiayin613 2012-02-04 10:33:26
我是个菜鸟,望大师帮我改进,问题出在哪?

int main()
{
int num,m;
vector<int>number;
while(cin>>num)
number.push_back(num);
sort(number.begin(),number.end());
m=number[0];
for(int i=0;i<number.size();i++)
if(m<number[i+1])
m=number[i+1];
for(int i=0;i<number.size();i++)
if(m==number[i])
cout<<number[i]<<'\n';
}
...全文
409 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
面包大师 2012-02-04
  • 打赏
  • 举报
回复
			else if (nTemp==nCount)
{
nSum++;
nNum[nSum-1]=number[i-1];
}
nTemp = 1;
}
else
{
nTemp++;
}
}
面包大师 2012-02-04
  • 打赏
  • 举报
回复
	for(int i=1;i<number.size();i++)
{
m=number[i];
if(m!=number[i-1])
{
if (nTemp>nCount)
{
nCount = nTemp;
nSum = 1;
nNum[0]=number[i-1];
}
面包大师 2012-02-04
  • 打赏
  • 举报
回复
	int nCount=0;//众数出现的次数
int nSum = 0;//众数出现的个数(众数不唯一)
int nNum[32]={0};//每一个众数
int nTemp = 1;//当前数字出现的次数
面包大师 2012-02-04
  • 打赏
  • 举报
回复
for(int i=0;i<number.size();i++)
if(m<number[i+1])//首先你这个地方就越界了
m=number[i+1];//你这样保存是保存了最大的
liujiayin613 2012-02-04
  • 打赏
  • 举报
回复
众数就是一组数据中出现次数最多的那个数:比如1,2,2,2,4中众数是2,再者1,1,2,2,3,4众数是1和2
程序员小迷 2012-02-04
  • 打赏
  • 举报
回复
众数 是啥?

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧