首页 > 其他 > 详细

如何找出一个数组中第二大的数

时间:2014-03-12 15:51:56      阅读:491      评论:0      收藏:0      [点我收藏+]

思路分析:

可以只通过一遍扫描数组即可找出数组中第二大的数,即通过设置两个变量来进行判断。首先定义一个最大变量来存储数组的最大值,初始值为数组首元素;另一个是第二大变量,用来存储数组中的第二大数,因其一定不能超过数组中的最大值,所以初始值可设为最小负整数-32767,然后遍历数组元素。如果数组元素的值比最大变量的值大,则将第二大变量的值更新为最大变量的值,最大变量的值更新为该元素的值;如果数组元素的值比最大变量的值小,则判断该数组元素的值是否比第二大变量的值大,如果大,则更新第二大变量的值为该数组元素的值。

代码如下:

bubuko.com,布布扣
#include "stdafx.h"
#include <stdio.h>
const int MINNUMBER = -32767;
int FindSecMax(int data[], int count)
{
    int maxnumber = data[0];
    int sec_max = MINNUMBER;
    for (int i = 1; i < count; i++)
    {
        if (data[i]>maxnumber)
        {
            sec_max = maxnumber;
            maxnumber = data[i];
        }
        else
        {
            if (data[i] > sec_max)
                sec_max = data[i];
        }
    }
    return sec_max;
}
int main()
{
    int array[] = { 2, 5, 6, 7, 7, 8, 98, 3, 458, 5, 6 };
    int length = sizeof(array) / sizeof(array[0]);
    printf("%d\n", FindSecMax(array, length));
    getchar();
    return 0;
}
bubuko.com,布布扣

    效果如图:

bubuko.com,布布扣

如何找出一个数组中第二大的数,布布扣,bubuko.com

如何找出一个数组中第二大的数

原文:http://www.cnblogs.com/cysolo/p/3596002.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!