C语言——有 15 个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”

news2024/10/5 17:28:45

完整代码:

/* 有 15 个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出
该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。*/
#include<stdio.h>

//折半查找法,n是查找的那个数,arr是数组,len是数组长度
int binarySearch(int n,int *arr,int len){
    //定义三个指针分别指向数组前中后
    int low=0;
    int high=len-1;
    int mid=(low+high)/2;
    //如果这个数比数组中最大数还要大,比最小数还要小时,在数组中肯定找不到该数,返回-1
    if (n<arr[high]||n>arr[low])
    {
        return -1;
    }
    //当数组的头指针比尾指针小时,说明查询未结束,继续进行折半查找
    while (low<=high)
    {
        //相等时说明已经找到,返回此时mid值,也就是数组中该数的下标
        if (n==arr[mid])
        {
            return mid;
        }
        //要找的数比数组中间的数大时,说明该数可能在数组的左边
        //此时应该改变high的值,使之指向mid之前的那个数
        else if (n>arr[mid])
        {
            high=mid-1;
        }
        //要找的数比数组中间的数小时,说明该数可能在数组的右边
        //此时应该改变low的值,使之指向mid之后的那个数
        else if (n<arr[mid])
        {
            low=mid+1;
        }
        //改变mid的指向,使之指向当前数组的中间
        mid=(low+high)/2;
    }
    //若循环结束之后,还是没有找到,说明数组中无此数
    return -1;
}


int main(){
    //创建数组
    int arr[15]={100,87,84,80,64,59,56,55,50,49,38,33,30,28,17};
    int len=sizeof(arr)/sizeof(arr[0]);
    int n;
    printf("请输入你想查找的数\n");
    scanf("%d",&n);
    //返回值为-1时就是数组中无此数
    if (binarySearch(n,arr,len)!=-1)
    {
        printf("该数是数组中第%d个元素的值\n",binarySearch(n,arr,len)+1);
    }
    else{
        printf("无此数");
    }
    return 0;
}

运行截图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1136858.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

超宽带技术在汽车领域的应用

随着科技的不断发展&#xff0c;超宽带&#xff08;Ultra-Wideband, UWB&#xff09;技术在各个领域展现出了强大的潜力&#xff0c;其中汽车领域更是受益匪浅。UWB技术以其高精度的定位能力、高速的数据传输和低功耗的特点&#xff0c;为汽车行业带来了许多创新。本文将探讨UW…

在Python的虚拟环境中卸载eric6的方法

问题描述 之前在电脑的Python虚拟环境中安装了PyQt5及相应的界面设计器eric6。当时安装eric6后&#xff0c;没成功运行&#xff0c;提示少一个什么系统文件。我已在旁边的台式机上安装了较新版的PyQt6&#xff0c;决定不再用老版本的eric6&#xff0c;于是我需在笔记本电脑上卸…

C#WPF嵌入字体实例

本文介绍C#WPF嵌入字体实例。 首先创建项目 添加Resources文件夹,添加字体文件,字体文件属性:生成操作为Resources,复制到输出目录:不复制 字体的使用可以采用以下两种方法: 方式一 直接引用 FontFamily="./Resources/#幼圆" 方式二 定义资源 <Applica…

微信小程序:js处理一段文字,根据句号或者分号进行换行

一、根据句号和分号进行换行 效果 代码 wxml <view><text>{{remark}}</text> </view> js 核心代码 var repalce_remark remark.replace(/[&#xff1b;。]/g, "$&\n"); // 使用正则表达式进行替换 remark 是待替换的字符串。/[&am…

APP移动出海必备神器,MobPush提供海外消息智能推送一站式解决方案

随着国内移动应用市场的趋于饱和&#xff0c;海外新兴市场成为越来越多移动应用开发者的进一步提升APP市场占有率的不二之选。据统计&#xff0c;中国应用开发者中有79.1%计划出海。但如何利用消息推送实现与用户的深度绑定仍然存在较为一定问题。在国外&#xff0c;应用开发者…

深度学习:激活函数曲线总结

深度学习&#xff1a;激活函数曲线总结 在深度学习中有很多时候需要利用激活函数进行非线性处理&#xff0c;在搭建网路的时候也是非常重要的&#xff0c;为了更好的理解不同的激活函数的区别和差异&#xff0c;在这里做一个简单的总结&#xff0c;在pytorch中常用的激活函数的…

如何使用爬虫做一个网站

​ 大家如果有兴趣做网站&#xff0c;在买了VPS&#xff0c;部署了wordpress&#xff0c;配置LNMP环境&#xff0c;折腾一番却发现内容提供是一个大问题&#xff0c;往往会在建站的大&#xff08;da&#xff09;道&#xff08;keng&#xff09;上泄气 &#xff0c;别怕&#xf…

找免费商用字体,就上这5个网站,再也不怕侵权了。

很多新手设计师没有版权意识&#xff0c;网上找了字体直接使用结果被发律师函&#xff0c;造成巨大损失&#xff0c;建议大家使用前先去查询一下这款字体是否能商用&#xff0c;另外就是去找一些可以免费商用的字体使用。如何才能找到免费商用字体呢&#xff1f; 下面我就把我…

迅镭激光万瓦切割设备中标全球轨交装备龙头中国中车

轨道交通装备被称之为国之重器&#xff0c;历经60多年的发展&#xff0c;我国轨交装备制造业已成为自主创新程度最高、国际创新竞争力最强、产业带动效应最明显的行业之一。 而承担我国现代化轨道交通装备研发制造的中国中车股份有限公司(以下称“中国中车”)&#xff0c;也在用…

微前端qiankun接入Vue和React项目

主应用&#xff1a;Vue3Webpack 1、创建主应用&#xff1a; npx vue create main-vue3-app 2、安装qiankun npx yarn add qiankun 3、项目中使用的vue、vue-router、qiankun依赖如下&#xff0c;webpack版本为5.x 4、在根目录下创建vue.config.js const { defineConfig }…

一张逻辑图讲清楚OS在做什么:浅谈OS

本文旨在通过思维导图的方式、对os主要的知识点简短介绍&#xff0c;让读者能短时间快速把os是什么、干什么给串起来。当别人问起来时&#xff0c;可以用3-5分钟讲清楚。如果读者对os有更加深入的兴趣&#xff0c;可点对点针对某一内容再做进一步研究。通常对于互联网从业者来说…

TSINGSEE青犀老旧小区升级改造AI+视频监控方案

一、背景与需求 近年来&#xff0c;政府高度重视城镇老旧小区改造工作&#xff0c;强调要加快老旧小区改造&#xff0c;不断完善城市管理和服务&#xff0c;彻底改变粗放型管理方式&#xff0c;让人民群众在城市生活得更方便、更舒心、更美好。老旧小区升级改造面临以下问题&a…

绿米Aqara S1【妙控开关 S1E】的破解方法

概述 为了更好地向友商学习,我们采购了绿米的一块妙控开关 S1E的屏幕,用来研究。 首先上图看一下他的设计及推广的说明: 产品详情,参见Aqara的官方网站: 具体链接:妙控开关 S1E|Aqara 全屋智能 硬件概要 这里我就直接上硬件的说明了。 官方的设备参数如下: 我来写…

SRS srs-bench

1 srs-bench 音视频压测工具&#xff0c;包括RTMP/FLV/WebRTC/GB28181等&#xff0c;未来还会完善。 SB(SRS Bench) is a set of benchmark and regression test tools, for SRS and other media servers, supports HTTP-FLV, RTMP, HLS, WebRTC and GB28181. For RTMP/HLS/F…

7.MySQL复合查询

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 目录 复合查询 基本查询回顾 多表查询 自连接 子查询 单行子查询 多行子查询 多列子查询 在from子句中使用子查询 合并查询 union union all 实战OJ 复合查询 前面我们讲解的mysql表的查询都是对一张表进行查询…

图像恢复介绍(持续更新)

前言 噪声的产生是信号在采集、传输以及记录过程中&#xff0c;受到成像设备自身因素和外界环境的影响而产生的。现实中的噪声是随机分布的&#xff0c;事实上&#xff0c;噪声无法完全去除&#xff0c;只能使得重现信号尽可能的接近原始信号&#xff0c;因此&#xff0c;去噪严…

JavaSpringbootmysql农产品销售管理系统47627-计算机毕业设计项目选题推荐(附源码)

摘 要 随着互联网趋势的到来&#xff0c;各行各业都在考虑利用互联网将自己推广出去&#xff0c;最好方式就是建立自己的互联网系统&#xff0c;并对其进行维护和管理。在现实运用中&#xff0c;应用软件的工作规则和开发步骤&#xff0c;采用Java技术建设农产品销售管理系统。…

Matplotlib | 高阶绘图案例【4】- 2023年编程语言榜单Python稳坐第一

文章目录 &#x1f3f3;️‍&#x1f308; 1. 导入模块&#x1f3f3;️‍&#x1f308; 2. 数据处理2.1 高效数据2.2 保留需要的列 &#x1f3f3;️‍&#x1f308; 3. 绘图3.1 绘制图布&#xff0c;添加3个子图3.2 绘制子图1条形图3.3 子图1条形图添加数据标签3.4 绘制子图2条…

toluaframework中C#怎么调用Lua的方法以及无GC方法

toluaframework中C#怎么调用Lua的方法 问题Util.CallMethodLuaManager.CallFunctionLuaFunction.LazyCall 解决方案LuaFunction脚本无GC消耗的调用 用法总结 问题 用过luaframework框架的人应该都知道框架提供了Util的工具类&#xff0c;工具类提供了一个方法就是Util.CallMet…

口袋参谋:30秒导出淘宝同行的全部数据,是如何做到的?

作为一名淘宝天猫的商家&#xff0c;想要了解产品当下的市场行情数据。 则可以通过&#xff0c;【同类目数据导出】功能&#xff1a; 一键获取相同类目下&#xff0c;所有店铺市场推广数据。 ​【同类目数据导出】功能使用 1、安装插件 2、登录千牛后台→数据→生意参谋→市…