C语言寻找出现次数最多的数字

发布时间:2021-10-22 11:32:57

/*不使用列表,而是直接用整型数组进行操作,速度最快,不进行删除,而是将当前位置的数据设置为尾部的数据,等同于数据交换,将不再用的数据移动到尾部就行了,数组的速度比列表要快太多了,*/

int _tmain(int argc, _TCHAR* argv[])
{

int list[]={1,2,3,4,4,3,2,1,1,2};
int length =sizeof(list)/sizeof(int);
printf("测试数组为:");
for(int i =0;i {
printf("%d,",list[i]);
}
int *result;
result = new int[length];
int count = 0;
// 这个是剩余可用的总数
int has = length;
int element;
int MaxNum =0;
int tempCount;
// 循环,直到列表里不再有数据
while (has > 0)
{
// 拿到最后一个数据
element = list[has - 1];
// 计数
tempCount = 0;
// 向前查找相同的
for (int j = has - 1; j >= 0; j--)
{
// 如果找到,则计数加1,然后将数据和末尾交换
// 这也是为何要从末尾开始循环的理由
if (element == list[j])
{
tempCount++;
// 将当前位置交换为末尾的数据
// 注意末尾数据是动态变化的
list[j] = list[has - 1];
has--;
}
}
printf("
修改数组为:");
for(int i =0;i {
printf("%d,",list[i]);
}
// 如果这个计数最大,则更新输出的数据


if (tempCount > count)
{
count = tempCount;
MaxNum =0;
result[MaxNum]=element;
//printf("%d,",count);
// outValue.clear();
// outValue.add(element);
}
else if (tempCount == count)
{
// 否则加入到最大数的列表里
// outValue.add(element);
MaxNum ++;
result[MaxNum]=element;
//printf("%d,",count);
}

}
printf("
出现频率最高的次数是:%d 次", count );
printf("
出现频率最高次数的数字是:
");
for(int m =0;m<=MaxNum;m++)
{
printf("%d,",result[m]);
}

getchar();
return 0;
}

相关文档

  • 关于会计专业员工实习报告3篇
  • 橄榄油让你远离骨质疏松
  • 九一手机维修中心
  • 安装电脑系统教程
  • 快乐的万圣节活动作文500字
  • 我喜欢的鱼
  • OSChina 周日乱弹 ??Mac优雅使用指南
  • 科学冷知识
  • 唐姓女鸡宝宝取名的方法
  • 医师进修申请书
  • 实用的元旦晚会作文700字汇编八篇
  • 门可罗雀造句精选
  • groovy2.1 测试
  • 儿童扁平足有哪些危害
  • Java程序员如何度过迷茫期?这些建议给你些许帮助
  • 九年级感受幸福的话题作文
  • 作孽成性是十二生肖哪个动物
  • 小企业会计准则衔接工作规定
  • IDEA spring找不到bean,找不到xml文件
  • 气球简笔画
  • 盼雨的抒情散文
  • Swop.fi:流动性提供者早鸟奖励SWOP如何分配?
  • 锐龙R3-3200G 配什么主板
  • 工程技术人员技术和业务个人工作总结
  • 安卓实现开机自动运行APP
  • 旷工处罚通知怎么写
  • 集团出纳试用期个人工作总结范文
  • 节日谜语及答案
  • 典型代码-linq 基本的增加记录操作
  • 高校读书活动策划书
  • 猜你喜欢

    电脑版