当前位置: 首页 > news >正文

C语言—求出现次数超过数组长度一半的数

题目://求数组中元素出现次数超过数组长度一半的数字。
思路://1.先排序,再输出,数组中间的那个数(arr[n/2]),这种办法对于有偶数个元素的数组可能会出现错误;
2.遍历整个数组,将遍历到的相同的数的次数加起来,最后返回,次数多的数,这个数就是出现次数超过数组长度一半的数。(本次所用的就是这种方法)

#include<stdio.h> #include<Windows.h> int Find(int *arr, int len){ int num = 0; int times = 0; int i = 0; for (i = 0; i < len; i++){ if (times == 0){ num = arr[i]; //先给num一个值,记录次数为1 times = 1; } else if (arr[i] == num){ //在遍历的时候,有相同的则次数加1 times++; } else{ times--; //不同的则次数减1,超过数组长度一半的数,times肯定大于0 } } return num; } int main(){ int arr[] = { 1, 2, 3, 2, 2, 2, 5, 4, 2 }; printf("超过一半的数是: %d\n", Find(arr, sizeof(arr) / sizeof(arr[0]))); system("pause"); return 0; }

运行结果:

http://www.jsqmd.com/news/1281782/

相关文章:

  • AI+iPaaS解决方案:跨系统业务流程自动化助力企业AI化转型
  • Wayfinder Router:AI应用成本与性能优化的智能路由解决方案
  • Ollama 部署的十个生产环境陷阱:显存不足、并发雪崩与模型版本混乱
  • 2026尤克里里选购指南|告别5大误区,4款高性价比机型实测推荐
  • 如何用MemcardRex终极PS1记忆卡编辑器轻松管理你的经典游戏存档
  • 3个真实场景告诉你:为什么Umi-OCR是处理大量图片文字的神器
  • 2026聊城化妆美甲美睫学校3家精选推荐,影视美妆首选创影 - 速递信息
  • AngularJS通过$sce输出html的方法
  • 最大连续子串
  • PreparedStatement的jdbc相关操作
  • 高效、免费、开源:GetQzonehistory让QQ空间历史说说备份变得简单
  • C++ noexcept关键字:从移动语义到容器性能优化的核心机制
  • 创世战车10K战力装配指南:从部件协同到实战优化
  • 想找优质专利轨道插座生产厂家?这些实用挑选技巧看完再也不踩坑
  • Cloudflare D1免费额度解析与优化技巧
  • Unity SSDLC框架:构建游戏开发全生命周期的安全免疫系统
  • 北京纯玩团深度对比:2-6人纯玩小团、一家一团定制游,到底哪个更值? - 速递信息
  • 数据结构实验(C语言):折半查找、哈希查找
  • Agentic AI实战:从概念到生产级智能体的架构设计与工程实践
  • 技术技能快速掌握:从基础到精通的系统方法论
  • 什么是完全二叉树?什么是叶子结点?一道题搞懂
  • ComfyUI-SUPIR终极指南:基于SDXL的智能图像超分辨率完整教程
  • 10-Gateway API
  • Leaf size is too small for the input dataset 解决办法
  • linux shell 各种括号作用详解()、(())、[]、[[]]、{}
  • 惠州惠城漏水检测维修一站式服务 - 本地正规防水补漏公司精选推荐(2026 最新)全域上门:卫生间 / 厨房 / 阳台 / 屋顶渗漏水免砸砖检测维修补漏全攻略 - 吉林同城获客
  • SpringBoot+Vue构建问卷调查系统的技术实践
  • 如何快速搭建私有搜索引擎:SearXNG Docker终极部署指南
  • NBM7100A芯片在低功耗物联网设备中的应用与优化
  • 暗黑2存档编辑器完全手册:零基础掌握角色与装备修改