18 half_find.cpp

来自「数据结构的必做编程题」· C++ 代码 · 共 45 行

CPP
45
字号


#include <stdio.h>
#include <math.h>
#define MAX 100
void search(){
	int low,high,mid,a,b,c,e[MAX],i=1;

	printf("请输入数字(输入0为结束):\n");
	while(1){
		scanf("%d",&c);
		e[i]=c;
		if(e[i]==0){
			b=i;
			break;
		}
		i++;
	}
	printf("你输入的数字为:");
	for(i=1;i<b;i++){
		printf("%d ",e[i]);
	}
	printf("\n请输入要查找数字:");
	scanf("%d",&a);

	low=1;
	high=b-1;
	while(low<=high){
		mid=(low+high)/2;
		if(e[mid]==a){
			printf("要查找数字位置为:%d\n",mid);

			break;}
		else if(e[mid]>a)
			high = mid-1;
		else low = mid+1;
	}
	if(low>high)printf("没有找到!\n");

}
void main(){
	search();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?