寻找数组中第二大数

设置两个数值来表示最大数和第二大数,在循环比较赋值即可

复制代码
//找给定数组中第二大的数

int get_smax(int *arr,int length)
{
    int max;
    int smax;
    if(arr[0] > arr[1])
    {
        max = arr[0];
        smax = arr[1];
    }
    else
    {
        max = arr[1];
        smax = arr[0];
    }
    for(int i = 2; i < length; i++)
    {
        if(max < arr[i])
        {
            smax = max;
            max = arr[i];            
        }
        else if((max > arr[i]) && (arr[i] > smax))
        {
            smax = arr[i];
        }
    }
    return smax;
}
复制代码

测试代码:

int main()
{
    int arr[5] = {1,2,3,4,5};
    int smax = get_smax(arr,5);
    printf("smax = %d\n",smax);
    return 0;
} 

运行结果:

smax = 4

posted @   王清河  阅读(1130)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2018-07-10 1090 Highest Price in Supply Chain (25)(25 分)
点击右上角即可分享
微信分享提示