为什么此C ++程序不显示任何输出?

shishank98

我正在尝试为二进制搜索编写代码,但未显示任何输出。请告诉我我的错误。

#include <iostream>
using namespace std;

int main(){
    int a[]= {1, 3, 5 , 7,  32};
    int n;
    cin>>n;
    int last=(sizeof(a)/sizeof(a[0]))-1;
    int first=0;
    while(first<=last){
        int mid=(last-1)/2;

        if(a[mid]==n){
            cout<<"No. Found"<< endl;
        }
        if(n>a[mid])
        {
            first=mid+1;
        }
        else
        {
            last=mid-1;
        }
    }
    cout<<"Not Found"<<endl;
    return 0;
}
贾维斯

您计算的方法mid是错误的,应该是这样的:

int mid = (first + last) / 2;

最好的方法是这样避免溢出(first + last可以溢出):

int mid = first + (last - first) / 2;

或与>>运营商:

int mid = (first + last) >> 1;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的以下程序不显示任何输出(ArrayList)?

来自分类Dev

为什么此代码显示输出17而不显示16?

来自分类Dev

为什么此C ++程序编译失败?

来自分类Dev

为什么此程序在C中崩溃?

来自分类Dev

为什么要编译此c ++程序?

来自分类Dev

为什么此C ++程序的输出为3

来自分类Dev

为什么此C ++程序的输出为3

来自分类Dev

为什么此C ++程序的输出为3

来自分类Dev

为什么此C程序的输出不正确

来自分类Dev

为什么此UIAlertController不显示?

来自分类Dev

为什么此JTextField不显示内容?

来自分类Dev

为什么此UIAlertController不显示?

来自分类Dev

为什么此代码不显示速度

来自分类Dev

为什么冲泡清理或冲泡清理-n不显示任何输出?

来自分类Dev

C程序:为什么此数组具有此输出?

来自分类Dev

为什么此AlertDialog为什么不显示?

来自分类Dev

XSL为什么不显示任何数据

来自分类Dev

C程序未显示任何错误,但未显示输出

来自分类Dev

为什么我的jsp不显示输出?

来自分类Dev

为什么JFrame不显示输出?

来自分类Dev

为什么此C代码的输出为“否”?

来自分类Dev

为什么此C代码总是输出笑脸?

来自分类Dev

C:为什么“ Enter”键触发此代码中的输出?

来自分类Dev

为什么通过管道传输程序输出时 journalctl 不显示日志?

来自分类Dev

为什么此C程序无法正确运行?

来自分类Dev

为什么此C程序不打印unsigned int?

来自分类Dev

为什么此C程序无法正确运行?

来自分类Dev

为什么我不能运行此C程序?

来自分类Dev

为什么此C程序在此位置出现段错误?