吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1551|回复: 16
收起左侧

[讨论] 找出数组中第二大的数

[复制链接]
sergin 发表于 2020-10-13 19:31
#include <stdio.h>

void bubble(int * p, int len)
{
        int i, j, temp;
        for (i = 0; i < len; i++)
        {
                for (j = 0; j < len -i - 1; j++)
                {
                        if (*(p+j) < *(p+j+1))
                        {
                                temp = *(p+j);
                                *(p+j) = *(p+j+1);
                                *(p+j+1) = temp;
                        }
                }
        }
        return;
}

int main(void)
{
        int a[] = {5, 100, 32, 45, 21, 67, 32, 68, 41, 99, 13, 71};
        int * p = a;
        int len = sizeof(a) / sizeof(a[0]);

        bubble(p, len);

        printf("%d\n", *(p+1));

        return 0;
}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ciker_li 发表于 2020-10-13 19:47
排序选出第二个
跑得快有糖吃 发表于 2020-10-13 19:49
PPZ丿皮皮智 发表于 2020-10-13 19:54
先用冒泡把所有数先从小到打排列好然后输出倒数第二个就好了
hearne 发表于 2020-10-13 19:59
先排序效率太低了吧,是最不经济的方法了

int getSecondMaxNumber(int *p , int n)
{
        int i , max , second;
        max = p[0];
        second = max;
        for(i = 1 ; i < n ; ++i) {
                if(p[i] > max) {
                        second = max;
                        max = p[i];
                }
                else {
                        if(p[i] > second)
                                second = p[i];
                }
        }
        return second;
}
yhcfsr 发表于 2020-10-13 20:10
本帖最后由 yhcfsr 于 2020-10-13 20:12 编辑

如果只想找第二大,不妨改成,
[C++] 纯文本查看 复制代码
for (i = 0; i < 2; i++)且 if (*(p+j) > *(p+j+1))

这样倒数第2个就是要找的数
ximen_qing 发表于 2020-10-13 20:24
没看懂楼主的帖子?
ytzyyjj 发表于 2020-10-13 20:39
厉害~~~学习一下
yzqhj 发表于 2020-10-13 21:48
c?优秀的楼主
HighBox 发表于 2020-10-13 21:59
排序sort()
去重unique()

输出索引就好
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 11:57

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表