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

#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;
}

代码不是你写的吧?因为代码没有问题,只是输入时要先输入个数n,再输入n个数,最后输入一个要找的数——这代码没有输入错误提示,所以输入错了就没有输出,等待下一次输入。而且,代码是多组循环,若要退出,得输入两次Ctrl+z键,否则啥也不显示等待下一轮输入。比如你输入4↙(↙表示回车),再输入1 2 3 4(空格隔开)↙,最后输入3↙,那么,输出就是
用函数1找到的i,j为:(2,2)
用函数2找到的下标为:2
若不退出则进入下一轮,若要退出则输入^z↙^z↙即可。^z表示同时压下Ctrl键和z键。
温馨提示:答案为网友推荐,仅供参考
相似回答