#include<iostream> using namespace std; struct lookupdata { char*key; int value; }; lookupdata data[]={{"a",12},{"b",11},{"c",15},{"d",98}}; int sx(int value,int n) { for(int i=0;i<n;i++) { if(value==data[i].value) { return i; } } return -1; } int zb(int value,int l,int h,int n) { for(int i=0;i<n;i++) { for(int j=0;j<n-1-i;j++) { if(data[j].value>data[j+1].value) { lookupdata temp=data[j]; data[j]=data[j+1]; data[j+1]=temp; } } } int mid=(l+h)/ 2; while(h>=l) { if(value==data[mid].value) { return mid; } else if(value>data[mid].value) { l=mid+1; } else { h=mid-1; } } return -1; } int main() { cout<<"顺序查找后的下标值为:"<<sx(11,4)<<endl; cout<<"折半查找的下标值为:"<<zb(11,0,3,4)<<endl; return 0; }为什么折半查找的值未输出
时间: 2024-01-03 17:03:13 浏览: 22
使用include <iostream>时一定要加using namespace std
在你的代码中,折半查找的值已经输出了,但是你没有在输出语句中加上换行符,导致输出结果与前一行合并了。将以下语句:
```
cout<<"折半查找的下标值为:"<<zb(11,0,3,4)<<endl;
```
改为:
```
cout<<"折半查找的下标值为:" << zb(11,0,3,4) << endl;
```
即可在输出结果后加上换行符,使输出结果更清晰。
阅读全文