6.20注意常见错误

这篇博客介绍了C语言中使用for循环实现的二分查找算法。在循环结构中,详细阐述了如何根据中间值与目标值的比较来调整搜索范围,并在找到目标值时返回其下标,未找到则输出提示信息。该示例代码展示了二分查找的效率优势,尤其在处理有序数组时。

你在输入缓冲区输入时(以回车为结束标志),scanf函数会读取回车前的内容,而回车是也是一个字符'\n',它的存在会影响之后getchar();函数的读取。

for循环相对于while循环的优势:若语句中有continue,while循环会直接跳到判断表达式,而for循环在进入判断前,还有个调整表达式ex3。

二分查找

int main ()
{
	int left=0;
	int right=5;
	int a[]={1,2,3,4,5,6,7,9};
    int subscript=-1;
	while(right>=left)
	{
		int mid=(left+right)/2;
	
		if(a[mid]>x)
		{
			right=mid-1;

		}
		else if(a[mid]<x)
		{
			left=mid+1;
		}
		else
		{
			subscript= mid;
		}

	}
    if(subscript==-1)
    {
        printf("can not find ");
    }
    else
    {
         printf(it is a[%d]",subscript);   
    }
	
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值