问题 7004 --查成绩

7004: 查成绩★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 83  解决: 66
[提交][状态][命题人:]

题目描述

从键盘按照升序输入一个班(不超过30人)的程序设计基础C成绩,

具体人数由键盘输入。

假设全班没有相同分数,要求使用二分算法(折半算法)查找分数为x的学生序号并输出(序号从0开始),

若查找不到则输出“No”

#include <iostream>
using namespace std;
int main()
{
	int a[30],low,height,mid,n,x,i;
	cin>>n>>x;
	for(i=0;i<n;i++) cin>>a[i];
	low=________; 
	height=__________;
	while(low<=height)
	{
		mid=(low+height)/2;
		if (a[mid]<x)
			___________;
		else if(a[mid]>x)
			height=mid-1;
		else
			____________;
	}
	if(__________)
		cout<<mid;
	else
		cout<<"No";
    return 0;
}

输入

输出

样例输入
Copy
9 85
55 60 65 71 76 79 80 85 89
样例输出
Copy
7

提示

来源

[提交][状态]