Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
95944 | 冯诚阳 | C语言7.15 | C++ | Accepted | 0 MS | 268 KB | 683 | 2024-11-02 15:00:50 |
#include<iostream> using namespace std; int main() { int arr[15]; int i; for(i=0;i<15;i++) { scanf("%d",&arr[i]); } int x; scanf("%d",&x); int start,end,flag,middle; start=0;end=14;flag=0; while(start<=end)//两边不断缩小,直到两端重合 { middle=(end+start)/2;//找中间值 if(x>arr[middle]) { start=middle+1;//若x大于中间值,则从中间值的右边开始找 } else if(x<arr[middle]) { end=middle-1;//若x小于中间值,则从中间值的左边开始找 } else { printf("%d",middle); flag=1;//设置找到位置的标志 break; } } if(flag==0) { printf("NO"); } }