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

news2024/11/28 12:38:04

一、N-S流程图;

二、运行结果;

三、源代码;

# define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>
//定义数据;
#define N 15

int 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.coloradmin.cn/o/1650190.html

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

相关文章

Redis学习5——Redis应用之签到

Redis位图bitMap 位图由一系列二进制位组成&#xff0c;每个位可以被设置为1或0&#xff0c;当我们在处理需要高效存储和操作大量二进制位数据的适合&#xff0c;位图是一个非常有用的工具。 位图操作命令有&#xff1a; SETBIT&#xff1a;设置位图中指定位置的位的值。可以…

类加载器aa

一&#xff0c;关系图及各自管辖范围 &#xff08;不赘述&#xff09; 二&#xff0c;查看关系 package com.jiazai;public class Main {public static void main(String[] args) {ClassLoader appClassLoader ClassLoader.getSystemClassLoader();//默认System.out.println…

Debian是什么?有哪些常用命令

目录 一、Debian是什么&#xff1f; 二、Debian常用命令 三、Debian和CentOS的区别 四、Debian和CentOS的优缺点 五、Debian和CentOS的运用场景 一、Debian是什么&#xff1f; Debian是一种流行的开源Linux操作系统。 Debian是一个以Linux内核为基础的操…

1天搞定SpringBoot+Vue全栈开发 (7)Axios网络请求

1.Axios的使用 Axios中文文档 | Axios中文网Axios 是一个基于 promise 的网络请求库&#xff0c;可以用于浏览器和 node.jshttps://www.axios-http.cn/ 2.与vue整合 App.vue: <template><div id"app"><Moviev-for"movie in movies":key&qu…

Linux实现Flappy bird项目

目录 1、项目介绍 2、功能总结 3、前期准备 3.1 Ncurses库 3.2 信号机制 3.2.1 设置信号响应方式 3.2.2 设置定时器 4、代码实现 4.1 头文件引用及变量、函数定义 4.2 主函数 4.3 curses初始化 4.4 设置定时器 4.5 定时器响应函数 4.6 小鸟控制相关函数 4…

鸿蒙开发接口Ability框架:【@ohos.application.missionManager (missionManager)】

missionManager missionManager模块提供系统任务管理能力&#xff0c;包括对系统任务执行锁定、解锁、清理、切换到前台等操作。 说明&#xff1a; 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 导入模块 impo…

python部署linux

python项目做完了&#xff0c;就涉及到了部署&#xff0c;windows可以打包exe&#xff0c;linux如何部署呢&#xff1f; 部署 Python的打包部署方式有多种&#xff0c;具体取决于项目的需求、规模以及所使用的工具。以下是几种常见的Python打包部署方式&#xff1a; 使用pip安…

通过氧气退火增强β-Ga₂O₃二极管.中国科技大学和河北半导体研究所的研究人员在这一特定领域取得了最新重大进展

上图所示&#xff1a;&#xff08;a&#xff09;增加台面有助于提高β-Ga2O3肖特基势垒二极管的阻断电压&#xff08;b&#xff09;。 氧气退火和自对准台面终端使β-Ga2O3二极管进一步走向商业化。 虽然β-Ga2O3电力电子技术已经取得了长足的进步&#xff0c;但仍然存在挑战&…

民航电子数据库:replace into导致自增主键异常,新增数据时报错:违反唯一键约束

目录 场景异常原因解决方法一&#xff1a;删除数据重新insert方法二&#xff1a;刚刚自增主键的起始值 场景 1、对接民航电子数据库 2、由于truncate、drop命令会使数据库报错&#xff1a;执行失败&#xff0c;[E14011]资源忙(加锁超时)&#xff0c;所以用了replace into命令…

使用Express+Node.js搭建网站

Express是一个基于Node.js平台的快速、开放、极简的Web开发框架。它的作用是专门用来创建Web服务器&#xff0c;与Node.js内置的http模块功能相似&#xff0c;但更为简便和高效。 Express中文官网&#xff1a;Express - 基于 Node.js 平台的 web 应用开发框架 - Express中文文…

人工智能|推荐系统——工业界的推荐系统之排序

多目标排序模型 回顾一下推荐系统的链路 常见的交互指标 排序模型做的事情 多目标模型就是要预测多个目标 预测概率和实际是否交互求交叉熵损失 训练时通常会遇到类别不平衡问题&#xff0c;可以考虑做采样 采样可能导致预估点击率偏高 可以通过校准公式进行校准 Multi-gate Mi…

聊聊 ASP.NET Core 中间件(二):中间件和筛选器的区别

前言 有些小伙伴看到上一篇文章后&#xff0c;可能会发现中间件和我们之前讲的筛选器非常类似&#xff0c;比如它们都是通过 next 串起来的一系列的组件&#xff0c;并且都可以在请求处理前后执行代码&#xff0c;都可以通过不执行 next 来进行请求的终止。那么筛选器和中间件…

【算法】滑动窗口——最大连续1的个数

本篇文章讲的是“最大连续1的个数”这道题&#xff0c;从最开始的简单暴力到用滑动窗口算法实现解题的思路历程&#xff0c;有需要借鉴即可。 目录 1.题目2.暴力求解3.滑动窗口解法3.1优化一&#xff1a;end重返start优化&#xff0c;end指针不回退3.2优化二&#xff1a;某一st…

PC小程序解密及反编译

一、小程序包解密 小程序原始加密包位置C:\Users\administrator\Documents\WeChat Files\Applet\wx234324324324 二、wxappUnpacker反编译 npm install./bingo D:\temp\小程序包解密\wxpack\wx234324324324.wxapkg 三、查看反编译后的文件

C++ 递归函数

一 递归函数 递归函数(Recursive Function&#xff09;即自调用函数&#xff0c;即在函数体内有直接或间接地自己调用自己的语句。 大多数递归函数都能够用非递归函数代替。 例如&#xff1a;求两个整数a,b的最大公约数。 算法描述&#xff1a; 大多数递归函数都能用非递归…

Leaflet在WGS84 Web墨卡托投影与WGS84经纬度投影下空间信息变形问题及修正-以圆为例

目录 前言 一、投影的相关知识 1、经纬度投影 2、Web墨卡托投影 二、经纬度投影下的空间信息展示 1、空间信息展示 2、效果展示 3、经纬度投影下的圆修正 三、Web墨卡托投影下空间信息展示 1、底图引用 2、自定义生成圆 总结 前言 在GIS的知识海洋中&#xff0c;对…

2024/5/7 QTday2

练习&#xff1a;优化登录框&#xff0c;输入完用户名和密码后&#xff0c;点击登录&#xff0c;判断账户是否为 Admin 密码 为123456&#xff0c;如果判断成功&#xff0c;则输出登录成功&#xff0c;并关闭整个登录界面&#xff0c;如果登录失败&#xff0c;则提示登录失败&a…

(✌)粤嵌—2024/5/7—除自身以外数组的乘积

代码实现&#xff1a; /*** Note: The returned array must be malloced, assume caller calls free().*/ int* productExceptSelf(int *nums, int numsSize, int *returnSize) {// 左乘积int l[numsSize];l[0] 1;for (int i 1; i < numsSize; i) {l[i] l[i - 1] * nums[…

Kansformer?变形金刚来自过去的新敌人

​1.前言 多层感知器(MLPs),也被称为全连接前馈神经网络,是当今深度学习模型的基础组成部分。 MLPs在机器学习中扮演着至关重要的角色,因为它们是用于近似非线性函数的默认模型,这得益于通用近似定理所保证的表达能力。然而,MLPs真的是我们能构建的最佳非线性回归器吗?尽管ML…

景源畅信:个人抖音小店怎么开通?

在数字时代的浪潮中&#xff0c;个体创业已不再是遥不可及的梦想。特别是随着短视频平台的崛起&#xff0c;抖音不仅成为人们娱乐消遣的新宠&#xff0c;更是众多创业者眼中的“新大陆”。你是否也曾憧憬过在抖音上开一家属于自己的小店?那么&#xff0c;如何开通个人抖音小店…