c语言中,程序没有错误但是运行后却不显示

#include<iostream>usingnamespacestd;boolBinarySearch(int*a,intn,intx,int&i,int&j){int... #include<iostream>
using namespace std;
bool BinarySearch(int *a,int n,int x,int& i,int& j){
int left=0;
int right=n-1;
while(left<=right){
int mid=(left+right)/2;
if(x==a[mid]){
i=j=mid;
return true;
}
if(x>a[mid])
left=mid+1;
else
right=mid-1;
}
i=right;
j=left;
return false;
}
int SearchTag(int *a,int n,int x){
int left=0;
int right=n-1;
while(left<=right){
int mid=(left+right)/2;
if(x==a[mid]) return mid;
if(x>a[mid])
left=mid+1;
else
right=mid-1;
}
return -1;
}
int main(){
int n,i,j,a[1000],x;
while(cin>>n){
for(i=0;i<n;i++)cin>>a[i];
cin>>x;
BinarySearch(a,n,x,i,j);
cout<<"用函数1找到的i,j为: "<<'('<<i<<','<<j<<')'<<'\n';
cout<<"用函数2找到的下标为: "<<SearchTag(a,n,x)<<"\n\n";
}return 0;
}
展开
 我来答
White_MouseYBZ
2018-04-12 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6607万
展开全部
代码不是你写的吧?因为代码没有问题,只是输入时要先输入个数n,再输入n个数,最后输入一个要找的数——这代码没有输入错误提示,所以输入错了就没有输出,等待下一次输入。而且,代码是多组循环,若要退出,得输入两次Ctrl+z键,否则啥也不显示等待下一轮输入。比如你输入4↙(↙表示回车),再输入1 2 3 4(空格隔开)↙,最后输入3↙,那么,输出就是
用函数1找到的i,j为:(2,2)
用函数2找到的下标为:2
若不退出则进入下一轮,若要退出则输入^z↙^z↙即可。^z表示同时压下Ctrl键和z键。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式