c语言 一维数组折半查找法_C程序在一维数组中查找第二大元素

c语言 一维数组折半查找法

Problem statement: Write a C program to find second largest element in a one dimensional array.

问题陈述:编写C程序以查找一维数组中的第二大元素。

Example:

例:

    Input : 
    arr[] = {10, 8, 7, 12, 14, 9}

    Output : 
    Second largest element: 12

    Input : 
    arr[] = {4, 6, 11, 10, 4}

    Output : 
    Second largest element: 10

Algorithm:

算法:

  1. Declare two variables first_large_ele and second_large_ele as int.

    将两个变量first_large_ele和second_large_ele声明为int 。

  2. Initialise both the variable with INT_MIN (i.e 0), first_large_ele = second_large_ele = 0.

    使用INT_MIN (即0), first_large_ele = second_large_ele = 0初始化两个变量。

  3. Run for loop over array.

    运行数组循环。

    • if array[index] is greater than first_large_ele variable value then update the second_large_ele with first_large_ele variable value (i.e second_large_ele = first_large_ele) and assign array[index] value to first_large_ele variable (i.e first_large_ele = array[index]).
    • 如果array [index]大于first_large_ele变量值,则使用first_large_ele变量值(即second_large_ele = first_large_ele )更新second_large_ele , 并将 array [index]值分配给first_large_ele变量(即first_large_ele = array [index] )。
    • if the array[index] is in between of first_large_ele and second_large_ele variable value then update the second_large_ele variable with array[index] (i.e econd_large_ele = array[index]).
    • 如果array [index]在first_large_ele和second_large_ele变量值之间,则使用array [index]更新second_large_ele变量(即econd_large_ele = array [index] )。
  4. Return the second_large_ele.

    返回second_large_ele 。

C实现在一维数组中查找第二大元素 (C implementation to find second largest elements in a one dimensional array)

//
//  main.c
//  Second largest element in the array
//
//  Created by Anshuman Singh on 22/06/19.
//

#include <stdio.h>
#include <stdlib.h>

int second_largest_element(int arr[], int length) {
    int first_large_ele = 0, second_large_ele = 0, index;
    
    if (length < 2) {
        printf("Error: Array has less than two element !!!");
    }
    
    for (index = 0; index < length; index++) {
        if (first_large_ele < arr[index]) {
            second_large_ele = first_large_ele;
            first_large_ele = arr[index];
        }
        else if (arr[index] != first_large_ele && \
                 second_large_ele < arr[index] && \
                 second_large_ele < first_large_ele) {
            second_large_ele = arr[index];
        }
    }
    return second_large_ele;
}

int main() {
    int size, index;
    
    printf("Enter the size of array: ");
    scanf("%d", &size);
    
    int arr[size];
    int array_length = (int)sizeof(arr) / sizeof(int);
    
    printf("\nEnter the array elements: ");
    for (index = 0; index < array_length; index++) {
        scanf("%d", &arr[index]);
    }
    
    printf("Second largest element: %d ", second_largest_element(arr, array_length));
    return 0;
}

Output

输出量

Enter the size of array: 5

Enter the array elements: 11 22 44 55 33
Second largest element: 44


翻译自: https://www.includehelp.com/c-programs/find-second-largest-elements-in-a-one-dimensional-array.aspx

c语言 一维数组折半查找法

c语言课程笔记(数组)                   c语言课程笔记(数组) 知识总结 一:一维数组的定义和初始化 1.构成数组的每个数据项称为数组元素;c语言通过数组的下标实现对数组元素的访问。 2.注意:c语言中数组的下标都是从0开始的。 3.注意,引用数组元素时下标可以是整型变量,例如引用score的第i个元素用score[i] ,但在定义数组时不能使用变量定义数组的大小,即下面的定义是非法的。 int sc... 阅读详情

相关推荐

测站坐标系、地心非惯性系、经纬高互转

目录 一、经纬高转直角坐标系互转 1.1 python代码 二、wgs84转cgcs2000的转换矩阵如下 虽然cgcs2000与wgs84差别很小,但是我比较较真,还是做了两个坐标系的转换。 一、经纬高转直角坐标系互转 此处可参考链接(百度文库用手机浏览器可以打开看全部的): (1)第四章地球椭球及其数学详解 (2)第四章椭球数学变换16节 (3)大地测量学基础[1](7)(控制) 转换公式如下: LBH转XYZ: a为半长轴,e为偏心率 XYZ转LBH: a为半长轴

${王小贱}的博客 2万+

随机为一维数组赋值,找出其中的第二大值

int a[20] = {0};     为数组中的元素赋值     for (int i = 0;  i         a[i] = arc4random() % (50 - 10 + 1) + 10;         printf("%d", a[i]);         printf("\n");     }     int max = a[0], sex = a[0];

chenhongyi_1992的专栏 889

CODESYS做Modbus TCP主站踩坑记:从IP配置到数据映射的完整避坑指南

本文详细记录了在CODESYS中配置Modbus TCP主站的全过程,从IP配置到数据映射的常见问题及解决方案。重点解析了网络适配器选择、Slave ID误解、地址偏移陷阱等关键问题,并提供了实用的调试技巧和性能优化建议,帮助工业通信开发者高效避坑。

weixin_30642561的博客 621

求出任何一维整型数组中的第二大的元素值

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33807284的博客 506

保姆级教程:在Ubuntu 20.04上从零搞定ROS Noetic和RealSense驱动,为无人机开发铺路

本文提供了一份详细的Ubuntu 20.04环境下ROS Noetic和RealSense驱动安装指南,专为无人机开发环境搭建设计。从系统配置、ROS安装到RealSense驱动集成,涵盖所有关键步骤和常见问题解决方案,帮助开发者快速搭建自主空中机器人开发平台。

weixin_30329623的博客 64

PnP 单目相机位姿估计(二):solvePnP利用二维码求解相机世界坐标

前言 原理简介 输入参数准备 1 objectPoints特征点世界坐标 2 imagePoints特征点在摄像头下的像素点坐标 3cameraMatrixdistCoeffs内参矩阵和畸变矩阵 相机世界坐标的求解 1求世界坐标中的点在相机坐标系下的坐标 2求相机在世界坐标中的坐标 3效果求解相机在世界坐标系下的坐标点 4求解代码1.前言  很多时候,当我们利用单目相机获取图像时,往往只能获取图像中

cocoaqin的博客 5万+

C语言学习笔记(5)之数组

数组 1. 问题的引入 int a;//定义一个整型 int a1,a2,a3,......a99; 有没有一种办法可以一次性的定义一组相同类型的变量? 数组。 2. 数组 一组具有相同类型的数组元素的有序集合。 在C语言中: 一维数组 二维数组 三维数组 。。。。 但是实际上我们的C语言中只有一维数组。 3. 一维数组 (1) 定义格式 类型说明符 数组名[整型表达式] {={初始值列表}}; “类型说明符”:指定数组中元素的类型,而不是数组的类型! 可以是C语言中任意合法的类型。 “数组名”:数组的名

Black_vv的博客 609

SAP SmartForms字体 :从OTF缓存溢出到完美解决

精准诊断:遇到错误,首先区分是图片过大还是字体嵌入导致。删除图片测试是最快的判别方法。字体上传规范始终从SE73入口上传用于表单打印的字体。强烈建议应用SAP Note 1301018,确保上传时勾选“不替换其他字体”,避免系统自动替换引发的意外问题。如需为同一字体族上传粗体、斜体等变体,请在SE73初始屏幕上勾选对应的属性框(如BOLD),然后分别上传对应的字体文件(如上传过程中,系统会提示输入RTF控制序列信息,这是确保打印预览正常显示的关键步骤,必须正确填写。方案选型快速止血:采用方案一(

Pegasus666的博客 285

求数组中第二大的元素

题目:求出数组中第二大的数,要求时间为O(n),其中n为数组的长度 代码如下: int _tmain(int argc, _TCHAR* argv[]) { int a[]={2,2,3,5,-3,9}; int temp = a[0]; int min = -1; for( int index = 1; index &lt; 6; index++) { if(te...

kanwoerzi 796

17、Nimble 包开发与并行编程指南

本文介绍了Nimble包的开发与版本管理流程,涵盖语义化版本控制规范及发布步骤;深入探讨了Nim中的并行编程基础,包括并发与并行的区别、threads模块与threadpool模块的使用方法及其差异;分析了线程执行的不确定性、线程池的优势,并提供了线程同步和资源管理的实践示例,帮助开发者高效构建稳定、高性能的Nim应用程序。

wine的专栏 52

SoulX-FlashHead 加速实践,提升3倍。

SoulX-FlashHead 加速实践,提升3倍。

jacke121的专栏 210

2021-03-09

/* 求一个一维数组中的第二大元素,不用排序 假设数组中没有重复的元素*/ #include <stdio.h> /* 求一个一维数组中的第二大元素,不用排序 假设数组中没有重复的元素*/ int main(int argc, char *argv[]) { int i; int a[7]; printf("Eneter 7 figures.\n"); for ( i = 0; i < 7; i++) { scanf("%d", &a[i]); }

Zhou_zilv的博客 290

基于NRF52833芯片的DW3000 SPI驱动接口代码实现

详细介绍基于NRF52833、nRF52820 、nRF52832 nRF52840 芯片的DW3000 硬件驱动接口代码

DT程序员的博客 1209

c语言 一维数组折半查找法_C程序在一维数组中查找两个最小元素

c语言 一维数组折半查找法Problem statement: Write a C program to find two smallest elements in a one dimensional array. 问题陈述:编写一个C程序以在一维数组中找到两个最小的元素。 Example: Type1: (all the elements are not same & no of e...

cumt30111的博客 2235

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

c语言 一维数组折半查找法_C程序在一维数组中查找两个最大元素

c语言 一维数组折半查找法Problem statement: Write a C program to find two largest elements in a one dimensional array. 问题陈述:编写一个C程序以在一维数组中找到两个最大的元素。 Example: Type1: (all the elements are not same & no of el...

cumubi7552的博客 608

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

c语言 一维数组折半查找法_C程序查找一维数组中的第二个最小元素

c语言 一维数组折半查找法Problem statement: Write a C program to find the second smallest element in a one dimensional array. 问题陈述:编写C程序以查找一维数组中的第二个最小元素。 Example: Type1: (all the elements are not same & no ...

768

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

C语言数组之查找

输入某班学生学号及某门课的成绩,任意输入一个学号,查找具有该学号的学生的成绩。 顺序查找 也称作线性查找法。基本思想:利用循环顺序扫描整个数组,一次将每个元素与待查找的元素进行比较,若找到则停止循环,输出其位置值;若所有的元素都比较后仍为找到,则循环结束,输出未找到。 #include <stdio.h> int bansearch(int a[],int n,int x); int ...

Arithmetic-logic 4883

用c语言编写折半查找法

折半查找法又称为二分查找,是在一个有序数组里面找到一个具体的数,方法我在代码里注释到了。 #include int binary_search(int *arr, int key, int sz)//创建一个函数 { int left = 0;//定义数组中元素的左下标 int right = sz - 1;//定义数组中元素的右下标 int mid = 0;//定义数组中一个元素的下

Beginner_zero的博客 7335

c语言编程编一个折半查找法,c语言作业(数&折半查找法).doc

c语言作业(数C语言程序设计实验报告实验名称数组学 院材冶学院专业班级成型1101姓 名李xx学 号2011任课教师徐彬实验时间2012年11月2日星期五实验目的熟练掌握一维数组、二维数组的定义、初始化和输入/输出方法;熟练掌握字符数组和字符串函数的使用;掌握与数组有关的常用方法(如查找、排序等)。实验内容编程实现“折半查找”的过程。要求设定一个整型数组存放20个元素,采用直接赋...

weixin_29103603的博客 590

c语言将折半查找一个数组,c语言作业(数组&折半查找法).doc

您所在位置:网站首页 > 海量文档&nbsp>&nbsp计算机&nbsp>&nbspC/C++资料c语言作业(数组&折半查找法).doc8页本文档一共被下载:次,您可全文免费在线阅读后下载本文档。 下载提示1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。2.该文档...

weixin_36325615的博客 876

有15个数按由大到小的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数量数组中第几个元素的值。如果该数不在数组中,则输出“无次数” 谭浩强《C程序设计课后习题》第6章第9题

题目 本题是谭浩强《C程序设计课后习题》第6章第9题。 题目:有15个数按由大到小的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数量数组中第几个元素的值。如果该数不在数组中,则输出“无次数”。 以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj 一、解题思路 思路: 1.我们先按题目要求定义一个一维数组中存入a[] = { 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1 }; 2.折半查找算法: left = 0; right

立志冲海大 7207

C语言 一维数组

斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21,34,55,89..,这个数列从第3项开始,每一项都等于前两项之和。在数学上,斐波那契数列以如下递推的方法定义: F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)。如果数组有5个元素,那对它的逆序即数组的第一个元素和第4个元素交换,第二个元素和第3个元素交换.....以此来完成逆序。本题考察的是累加,因为数据放在数组中,所以要对数组进行遍历,在遍历的过程中完成累加。

2301_80651507的博客 2064

用折半查找法找出对应值

从键盘输入一整数,然后在一个整型一维数组 a[20]中,用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则打印”No found”。

hdnbnsnbns的博客 564

【头歌C语言程序与设计】数组及其应用

本文代码是我自己所作,本人水平有CC限,可能部分代码看着不够简练,运行效率不高,但都能运行成功。另外,如果想了解更多,请订阅专栏头歌C语言程序与设计

m0_73222051的博客 5486

c语言n7-5 查找整数,N个有序整数数列已放在一维数组中,给定下列程序中,函数fun()的功能是:利用折半查找法查找整数m在数组中的位置。若找到,则返回其下标值;反之,则返回“Not be foun...

N个有序整数数列已放在一维数组中,给定下列程序中,函数fun()的功能是:利用折半查找法查找整数m在数组中的位置。若找到,则返回其下标值;反之,则返回“Not be found!”。折半查找法的基本算法是:每次查找前先确定数组中待确定的范围:low和high(lowhigh,查找结束。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达...

weixin_36282765的博客 746

C语言顺序查找

C语言数据结构的顺序查找,与折半查找

qq_48496633的博客 2978
上一篇: Java线程类ClassLoader getContextClassLoader()方法(带示例)
下一篇: mcq 队列_人工智能确定性因素能力问答(MCQ)
cumubi7552
博客等级 码龄10年 68粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值