查找数组中第二大的数字
2015-08-28 16:37
337 查看
#define ARRSIZE 10 #define MINNUMBER 0xFFFFFFFF #define FIND_SUCESS 1 #define FIND_FAIL 0 int GetSecondMaxNumber(int buffer[],int *secondMax) { int i,max; max = buffer[0]; *secondMax = MINNUMBER; for(i=1;i<ARRSIZE;i++) { if(buffer[i] > max) { *secondMax = max; max = buffer[i]; } else if (buffer[i] > *secondMax && buffer[i] < max) *secondMax = buffer[i]; } if(*secondMax == MINNUMBER) //The numbers are all the same. return FIND_FAIL; return FIND_SUCESS; }
查找第二大数实际上是伴随在查找最大数的过程中的。
<!--[if !supportLists]-->1、<!--[endif]-->如果当前元素大于最大数 max,则让第二大数等于原来的最大数 max,再把当前元素的值赋给 max。
<!--[if !supportLists]-->2、
<!--[endif]-->如果当前的元素大于第二大数secondMax的值而小于最大数max的值,则要把当前元素的值赋给 secondMax。――判断条件不能仅仅只是大于第二大的数secondMax,否则我们便无法处理” 99,99,88,86,68,66 ”这种情况。
PS:这个函数在调用时需要判断函数的返回值是否是 FIND_SUCESS 才能使用。
相关文章推荐
- 九度OJ 题目1482:玛雅人的密码
- 如何看懂ORACLE执行计划
- Hadoop相关日常操作
- zzuli OJ 1062: 最大公约数
- C/C++_中NULL与空字符串的区别
- hdu 5326
- 1027. Colors in Mars (20)
- SQLQuery
- muduo网络库源码学习————Timestamp.cc
- Eclipse新导入web项目run on server
- 使用了Autolayout的UITableViewCell动态布局和高度动态改变自适应
- 【system】Findbugs静态分析工具插件安装
- swift tutorial 2---你的第一个项目
- cocos2d js 中TableView
- Hadoop相关日常操作
- 推荐一款基于XNA的开源游戏引擎《Engine Nine》
- win8.1/win10 UEFI + GPT 安装(测试机型:华硕S56CM)
- [UVA1149]Dominating Patterns
- iOS开发之多线程(GCD介绍)
- sql 中英文格式的时间转数字格式