数组折半法查找数据(C语言)

devtools/2025/1/16 0:47:51/

一、N-S流程图;

二、运行结果;

三、源代码;

# define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>
//定义数据;
#define N 15int main()
{//初始化变量值;int a[N], i, top, bott, loca, flag = 1, sign, number, mid;char c;//填充数据;a[0] = 1;i = 1;//循环填充数;while (i < N){//填充;printf("a[%d]=", i);scanf("%d", &a[i]);//判断;if (a[i] >= a[i - 1]){//改变变量值;i++;}else{//提示用户;printf("您输入的数据不符合要求!!!\n");printf("请重新输入:\n");}}//换行;printf("\n");//循环打印数组;for (i = 0; i < N; i++){//打印;printf("%5d", a[i]);}//换行;printf("\n");//判断数据是否在数组中;while (flag){//获取数据;printf("请输入您要查找的数据:");scanf("%d", &number);//赋值;sign = 0;top = 0;bott = N - 1;//判断数据是否在数组内;if ((number < a[0]) || (number > a[N - 1])){//改变变量值;loca = -1;}else{//折半查找;while ((sign == 0) && (top <= bott)){//求出中间下标值;mid = (top + bott) / 2;//比较;if (number == a[mid]){//改变变量值;loca = mid;sign = 1;//输出值;printf("您输入的数据%d在数组中是第%d个元素值\n", number, loca + 1);}else if (number < a[mid]){//改变变量值;bott = mid - 1;}else{//改变变量值;top = mid + 1;}}}//判断;if ((sign == 0) || (loca == -1)){//输出结果;printf("您输入的数值%d在数组中无结果!!!\n", number);}//是否结束程序;printf("是否要结束查找?(Y/N)\n");scanf(" %c", &c);//判断;if (c == 'N'){//改变变量值;flag = 0;}}return 0;
}


http://www.ppmy.cn/devtools/37322.html

相关文章

05-06 周一 Shell工程目录划分和开发最佳实践

05-06 周一 Shell工程目录划分和开发最佳实践 时间版本修改人描述2024年5月6日10:34:13V0.1宋全恒新建文档2024年5月6日11:07:12V1.0宋全恒完成 简介 之前楼主曾经完成过一个shell工程的开发&#xff0c;记得当时项目名称叫做campus-shell&#xff0c;主要是用来一键完成多个模…

如何根据IP获取国家省份城市名称PHP免费版

最近项目遇到需要根据IP获取用户国家功能需求&#xff0c;网上找了一下&#xff0c;很多API接口都需要付费&#xff0c;考虑为公司节约成本&#xff0c;就取找找有没有开源的 github 上面那个包含多种语言&#xff0c;下面这个只有php&#xff0c;用法很简单 $ip 114.114.114…

Java | Leetcode Java题解之第64题最小路径和

题目&#xff1a; 题解&#xff1a; class Solution {public int minPathSum(int[][] grid) {if (grid null || grid.length 0 || grid[0].length 0) {return 0;}int rows grid.length, columns grid[0].length;int[][] dp new int[rows][columns];dp[0][0] grid[0][0]…

【idea-sprongboot项目】SSH连接云服务器进行远程开发

继上一篇博客【阿里云服务器】ubuntu 22.04.1安装docker以及部署java环境-CSDN博客 目录 五、远程开发方式 1&#xff09;SSH进行远程开发 步骤 配置文件同步 window电脑远程操控 正式通过window电脑远程操控 运行在linux服务器上的远程程序 调试在linux服务器上的远程程…

Springboot集成feign远程调用

需求&#xff1a;在leadnews-wemedia微服务里需要调用leadnews-article微服务的接口。新建一个支持feign调用的名为heima-leadnews-feign-api的模块 heima-leadnews-feign-api的pom文件里导入openfeign依赖 <dependency><groupId>org.springframework.cloud</g…

大模型日报2024-05-04

大模型日报 2024-05-04 大模型资讯 谷歌发布全新语言模型 GPT-Next 摘要: 谷歌推出了其新一代语言模型 GPT-Next&#xff0c;该模型在多个自然语言处理任务上取得了显著的进步。 百度推出大型语言模型 Baidu LM 2.0 摘要: 百度发布了升级版的大型语言模型 Baidu LM 2.0&#xf…

C++ 使用nlohmann/json.hpp库读写json字符串

1. json库 我个人比较喜欢 nlohmann/json.hpp 这个库&#xff0c;因为它只需要一个hpp文件即可&#xff0c;足够轻量&#xff01; 这是它的github地址。 2. 简单实例代码 #include <iostream> #include <json.hpp> #include <fstream> #include <stri…

redisson分布式锁中waittime的设置

之前分布式锁中使用redisson的lock.tryLock(0,0,TimeUnit.SECONDS) 这么做的逻辑是releaseTime设置为0&#xff0c;实际上会使用默认的30s并触发看门狗机制 那waitTime有没有默认值呢&#xff1f;设置为0实际会等待多少时间&#xff1f; 看源码 public boolean tryLock(long…