Problem E 寻找最大元素和第二大元素
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 寻找最大元素和第二大元素相关推荐
- 选第二大元素python(分治)
给定n个元素,找出元素中的第二大元素.该问题如果用线性扫描的方法的话, 首先找出最大值,比较n-1次 然后从n-1个元素中找出最大值,比较n-2次 下面考虑设计一个选第二大元素的分治算法 1.将n个元 ...
- 求解第二大元素——锦标赛算法(Tournament Algorithm)
问题 给定一个长度为的数组,请用比较次数小于的算法求出数组中的第二大元素. 求解 看到题目中的比较次数小于就知道不能先用一次循环找出最大元素,接着利用最大元素再一次循环找到第二大元素. 那么,应该怎么 ...
- 【锦标赛算法】找第二大元素FindSecond()
考虑找第二大元素,会想到调用两次Findmax()算法函数(推导可以参考上篇文章).先用Findmax()算法找出最大值,然后从L中删除max,再调用Findmax()找出剩下元素中的最大元素,就是输 ...
- 从键盘输入一个4x4整数矩阵,以主对角线为对称轴,将右上角元素中较大元素代替左下角对应元素,并将左下角元素
从键盘输入一个4x4整数矩阵,以主对角线为对称轴,将右上角元素中较大元素代替左下角对应元素,并将左下角元素(含对角线元素)输出.注意处理输入输出显示 #include <stdio.h> ...
- 编程将一个二维数组元素变换为逆向存放,即按元素在内存中的物理排列位置,第一个元素变成倒数第一个元素,第二个元素变成倒数第二个元素,依此类推。
编程将一个二维数组元素变换为逆向存放,即按元素在内存中的物理排列位置,第一个元素变成倒数第一个元素,第二个元素变成倒数第二个元素,依此类推. 例如,原始二维数组为,逆向存放后变为.试建立一个类 ...
- 求数组第二大元素 和 字符串拷贝的实现
int main() {int a[] = {5,100,32,45,21,67,32,68,41,99,13,71};//首先默认第一个成员和第二个成员就是最大和第二大int max = 0; // ...
- 取出数组第一大和第二大元素
[php] view plaincopy # 取出数组最大的元素 function getMax( $arr ){ if( !is_array($arr) ){ exit('参数必须是数组'); } ...
- selenium定位两个相同id、class的元素的第二个元素
如果遇到多个相同id的按钮,想直接定位到第某一个个.需要加s 本以为可以这样直接调用! cls.driver.find_element(By.ID, "com.qijianbx.app.qj ...
- 如何寻找无序数组中的第K大元素?
如何寻找无序数组中的第K大元素? 有这样一个算法题:有一个无序数组,要求找出数组中的第K大元素.比如给定的无序数组如下所示: 如果k=6,也就是要寻找第6大的元素,很显然,数组中第一大元素是24,第二 ...
- Python 面试题:输入一个数组,输出该数组的第二大的数字
问题: 输入一个数组,输出该数组的第二大的数字,并且编写相关的测试用例 注意: 1.如果list含有非int, float元素需要remove 2.如果list有重复的最大元素,需要自己处理,内置的l ...
最新文章
- 代码设置LinearLayout的高度
- docker 容器 defunct 僵尸进程
- poj-1062-昂贵的聘礼
- 计算机的硬件简介,计算机基础之硬件简介(Day2)(示例代码)
- Desktop: ERROR: Cannot set priority of namenode process 35122
- 告别 ROR windows 部署的噩梦-在 windows 上面 使用 Apache 部署 Ruby On Rails
- javap的用途不断发展:您的Java类文件中隐藏了什么?
- 英语口语 week13 Monday
- 二级c语言需要记库函数不,【2017年必备】计算机等级二级C语言上机考试题库(熟记必过,不看后悔).doc...
- Javascript 闭包何时回收?
- 学英语(4)---出门在外常用的英语句子
- python解析器原理_Python程序运行原理图文解析
- 通过函数名字符串调用函数【C语言版】
- [python]python logging 模块
- VAE变分自编码器的一点理解
- Wonderware Intouch 2014R2 SP1授权教程
- CentOS7 安装 YApi
- 首次揭秘!字节跳动基础架构技术迭代演进之路
- 一款极简的原生农历日期滚动选择器(小程序版本)体积小,速度快
- Tuxera NTFS2023免费版Mac电脑系统读写软件