Problem Description
编写函数: void find_two_largest(const int a[],int n,int *largest,int *second_largest);
当传递长度为n的数组a时,函数将在数组a中搜寻最大元素和第二大元素,把它们分别存储在由largest和sceond_largest指向的变量中。
测试程序为:
#include <stdio.h>
#define N 100
void find_two_largest(const int a[],int n,int *largest,int *second_largest);
int main()
{
    int a[N], len;
    int largest, second_largest;
    scanf("%d", &len);
    for (int i = 0; i < len; i++)
    {
        scanf("%d", &a[i]);
    }
    find_two_largest(a, len, &largest, &second_largest);
    printf("%d %d\n", largest, second_largest);
    return 0;
}
/* 你的代码将被嵌在这里 */
Input Description
输入的第一行为一个整数n(0<n<100),表示数组元素的个数。
第二行为n个整数,相互之间以空格分隔。
Output Description
输出所求的最大元素和第二大元素,以空格分隔,行末不能有多余的空格。
Sample Input
5
10 3 1 20 9
Sample Output
20 10

答案:
#include <stdio.h>
#define N 100
void find_two_largest(const int a[],int n,int *largest,int *second_largest);
int main()
{
    int a[N], len;
    int largest, second_largest;
    scanf("%d", &len);
    for (int i = 0; i < len; i++)
    {
        scanf("%d", &a[i]);
    }
    find_two_largest(a, len, &largest, &second_largest);
    printf("%d %d\n", largest, second_largest);
    return 0;
}
void find_two_largest(const int a[], int n, int *largest, int *second_largest)
{
    int k;
    if(a[0] < a[1])
    {
        *largest = a[1];
        *second_largest = a[0];
    }
    else
    {
        *largest = a[0];
        *second_largest = a[1];
    }
    for(k = 2; k < n; k++)
    {
        if(a[k] > *largest)
        {
            *second_largest = *largest;
            *largest = a[k];
        }
        else if(a[k] > *second_largest)
        {
            *second_largest = a[k];
        }

}
}

#include <stdio.h>
#define N 100
void find_two_largest(const int a[],int n,int *largest,int *second_largest);
int main()
{int a[N], len;int largest, second_largest;scanf("%d", &len);for (int i = 0; i < len; i++){scanf("%d", &a[i]);}find_two_largest(a, len, &largest, &second_largest);printf("%d %d\n", largest, second_largest);return 0;
}
void find_two_largest(const int a[], int n, int *largest, int *second_largest)
{int k;if(a[0] < a[1]){*largest = a[1];*second_largest = a[0];}else{*largest = a[0];*second_largest = a[1];}for(k = 2; k < n; k++){if(a[k] > *largest){*second_largest = *largest;*largest = a[k];}else if(a[k] > *second_largest){*second_largest = a[k];}}
}

Problem E 寻找最大元素和第二大元素相关推荐

  1. 选第二大元素python(分治)

    给定n个元素,找出元素中的第二大元素.该问题如果用线性扫描的方法的话, 首先找出最大值,比较n-1次 然后从n-1个元素中找出最大值,比较n-2次 下面考虑设计一个选第二大元素的分治算法 1.将n个元 ...

  2. 求解第二大元素——锦标赛算法(Tournament Algorithm)

    问题 给定一个长度为的数组,请用比较次数小于的算法求出数组中的第二大元素. 求解 看到题目中的比较次数小于就知道不能先用一次循环找出最大元素,接着利用最大元素再一次循环找到第二大元素. 那么,应该怎么 ...

  3. 【锦标赛算法】找第二大元素FindSecond()

    考虑找第二大元素,会想到调用两次Findmax()算法函数(推导可以参考上篇文章).先用Findmax()算法找出最大值,然后从L中删除max,再调用Findmax()找出剩下元素中的最大元素,就是输 ...

  4. 从键盘输入一个4x4整数矩阵,以主对角线为对称轴,将右上角元素中较大元素代替左下角对应元素,并将左下角元素

    从键盘输入一个4x4整数矩阵,以主对角线为对称轴,将右上角元素中较大元素代替左下角对应元素,并将左下角元素(含对角线元素)输出.注意处理输入输出显示 #include <stdio.h> ...

  5. 编程将一个二维数组元素变换为逆向存放,即按元素在内存中的物理排列位置,第一个元素变成倒数第一个元素,第二个元素变成倒数第二个元素,依此类推。

    编程将一个二维数组元素变换为逆向存放,即按元素在内存中的物理排列位置,第一个元素变成倒数第一个元素,第二个元素变成倒数第二个元素,依此类推.     例如,原始二维数组为,逆向存放后变为.试建立一个类 ...

  6. 求数组第二大元素 和 字符串拷贝的实现

    int main() {int a[] = {5,100,32,45,21,67,32,68,41,99,13,71};//首先默认第一个成员和第二个成员就是最大和第二大int max = 0; // ...

  7. 取出数组第一大和第二大元素

    [php] view plaincopy # 取出数组最大的元素 function getMax( $arr ){ if( !is_array($arr) ){ exit('参数必须是数组'); } ...

  8. selenium定位两个相同id、class的元素的第二个元素

    如果遇到多个相同id的按钮,想直接定位到第某一个个.需要加s 本以为可以这样直接调用! cls.driver.find_element(By.ID, "com.qijianbx.app.qj ...

  9. 如何寻找无序数组中的第K大元素?

    如何寻找无序数组中的第K大元素? 有这样一个算法题:有一个无序数组,要求找出数组中的第K大元素.比如给定的无序数组如下所示: 如果k=6,也就是要寻找第6大的元素,很显然,数组中第一大元素是24,第二 ...

  10. Python 面试题:输入一个数组,输出该数组的第二大的数字

    问题: 输入一个数组,输出该数组的第二大的数字,并且编写相关的测试用例 注意: 1.如果list含有非int, float元素需要remove 2.如果list有重复的最大元素,需要自己处理,内置的l ...

最新文章

  1. 代码设置LinearLayout的高度
  2. docker 容器 defunct 僵尸进程
  3. poj-1062-昂贵的聘礼
  4. 计算机的硬件简介,计算机基础之硬件简介(Day2)(示例代码)
  5. Desktop: ERROR: Cannot set priority of namenode process 35122
  6. 告别 ROR windows 部署的噩梦-在 windows 上面 使用 Apache 部署 Ruby On Rails
  7. javap的用途不断发展:您的Java类文件中隐藏了什么?
  8. 英语口语 week13 Monday
  9. 二级c语言需要记库函数不,【2017年必备】计算机等级二级C语言上机考试题库(熟记必过,不看后悔).doc...
  10. Javascript 闭包何时回收?
  11. 学英语(4)---出门在外常用的英语句子
  12. python解析器原理_Python程序运行原理图文解析
  13. 通过函数名字符串调用函数【C语言版】
  14. [python]python logging 模块
  15. VAE变分自编码器的一点理解
  16. Wonderware Intouch 2014R2 SP1授权教程
  17. CentOS7 安装 YApi
  18. 首次揭秘!字节跳动基础架构技术迭代演进之路
  19. 一款极简的原生农历日期滚动选择器(小程序版本)体积小,速度快
  20. Tuxera NTFS2023免费版Mac电脑系统读写软件

热门文章

  1. eToken 身份认证
  2. Gartner:浪潮存储进入分布式存储前三
  3. 基于android的理财软件,基于Android的理财系统APP的设计
  4. 【资源共享】Office软件合集
  5. 5. Podspec 文件分析
  6. 很老很老的老偏方,小病一扫光
  7. python 白色怎么表示_在numpy中创建“白色”图像(2D图像)
  8. Percent Library百分比布局详解
  9. 回忆是一杯毒酒,让人肝肠寸断
  10. 数字音频信号--Dither