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. python自学_为什么要选择Python怎样系统的自学并快速学习Python
  2. jzoj6800-NOIP2020.9.19模拟spongebob【枚举】
  3. 循环神经网络以及 LSTM 及其变体
  4. SpringBoot(十一)-- 动态数据源
  5. 二进制位运算中‘1’的个数
  6. 2008年9月三级网络技术考试试卷 参考答案1
  7. java 项目开发流程_详解JAVA开发之JAVA项目开发的基本流程
  8. 搭建一个简单的Windows域环境
  9. Unity3D自由摄像头视角旋转,平移,缩放
  10. 每日一句_《临江仙·滚滚长江东逝水》
  11. API 夺命四连杀:接口如何设计?安全如何保证?签名如何实现?防重如何实现?...
  12. QQ20岁:20年版本迭代只做一件事情!
  13. python 数值运算 m op n_测验1 Python基本语法元素 (第1周)
  14. 知识图谱学习笔记八(知识问答)
  15. 2021年最适合上班族的25个副业,男女通用!
  16. 云客Drupal源码分析之节点实体访问控制处理器
  17. 【IBM官方文档】DB2 SQLSTATE 消息
  18. Win10 Terminal更换背景图片,设置透明度
  19. 2022年了,想转行,哪一行最为靠谱
  20. 计算机发展变化初三英语作文,初三我的变化英语作文

热门文章

  1. IBM“移动优先”官网正式上线:苹果静候佳音
  2. pip install deepforest 失败
  3. 【SQL2008】select TOP (100) PERCENT***********ORDER BY **********
  4. 工具应用——Chrome浏览器 F12控制台中文改成英文
  5. android 时钟字体颜色,安卓手机美化之修改状态栏日期时间颜色
  6. thinkphp 运行机制和优缺点
  7. 【数据】社区发现数据集
  8. 哈罗选了个好时点上线顺风车业务,但很可能雷声大雨点小
  9. win10自动连接WIFI的批处理文件
  10. Chrome 鼠标左击右击无效解决办法