zoukankan      html  css  js  c++  java
  • 如何找出一个数组中第二大的数

    思路分析:

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

    代码如下:

    #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
    ", FindSecMax(array, length));
        getchar();
        return 0;
    }

        效果如图:

  • 相关阅读:
    初入博客
    winsocket入门学习
    理解音视频 PTS 和 DTS
    理解音视频 PTS 和 DTS
    FFMPEG学习----使用SDL构建音频播放器
    FFmpeg被声明为已否决的解决方案
    FFMPEG结构体分析:AVCodecParameters
    FFMPEG学习----使用SDL播放PCM数据
    如何提取CSDN博客正文内容
    遍历CSDN博客
  • 原文地址:https://www.cnblogs.com/cysolo/p/3596002.html
Copyright © 2011-2022 走看看