所以,每当我尝试搜索A [0]元素时(在这种情况下为23)。它不返回元素的位置。但是,当我尝试搜索其他元素A [0]时,它工作正常。请告诉我代码有什么问题,我该如何修复它。 示例输出 - 输入要搜索的项目 - 23 输出 - 在该阵列中找不到元素23。 提前致谢!
#include <iostream>
using namespace std;
int main(){
int A[]= {23, 34, 45, 67, 75, 89};
int I= sizeof(A)/sizeof(A[0]);
int LAST= I-1, FIRST= 0, MID, ITEM, INDEX= 0;
MID= ((FIRST + LAST)/2);
cout<<"Enter item to search- ";
cin>>ITEM;
while(FIRST <= LAST){
if(A[MID] == ITEM){
INDEX= MID;
break;
}
else if(A[MID] < ITEM){
FIRST= MID+1;
}
else{
LAST= MID-1;
}
MID= ((FIRST + LAST)/2);
}
if(INDEX != 0){
cout<<"\nElement "<<ITEM<<" found at position "<<(INDEX+1);
}
else{
cout<<"\nElement "<<ITEM<<" could not be found in this array.";
}
}
答案 0 :(得分:2)
if(INDEX >= 0){
cout<<"\nElement "<<ITEM<<" found at position ".
<<(INDEX+1);
}
索引从数组中的0开始。因此,修改IF条件以检查INDEX&gt; = 0.如果未找到input元素,则INDEX将返回-1。
答案 1 :(得分:1)
你已经放置if index!=0
条件,但23是在索引0