数组d中存储某班级50位同学的语文和数学成绩,偶数位(第0位,第2位……)存储对应该同学的语文成绩,奇数位(第1位,第3位……)存储数学成绩。该数组已经按照两科总成绩升序排序。依据二分查找思想,设计一个在数组d中查找总成绩key的程序,如果查找成功输出语文成绩在数组中的位置。
实现该功能的python程序段如下,请在划线部分填上合适的语句或表达式。
key=int(input(“请输入成绩“))
i,j,flag=0,99,True
while i<=j and flag:
m=(i+j)//2
if ①m%2==1m%2==1
m=m-1
sum=②d[m]+d[m+1]d[m]+d[m+1]
if key=sum:
flag=False
elif ③key>sumkey>sum
i=m+2
else:
j=m-2
if i>j:
print(“没有找到!“)
else:
print(“总分符合要求的语文成绩位置为:“,str(m))
【考点】查找算法及其程序实现.
【答案】m%2==1;d[m]+d[m+1];key>sum
【解答】
【点评】
声明:本试题解析著作权属菁优网所有,未经书面同意,不得复制发布。
发布:2024/5/27 14:0:0组卷:1引用:1难度:0.5
相似题
-
1.某对分查找算法的VB程序段如下:
数组元素a(1)到a(10)的值依次为“12,15,18,20,25,39,47,88,90,99”,经过上述代码查找后,下列表达式正确的是( )发布:2024/12/20 16:0:2组卷:5引用:2难度:0.5 -
2.某数组d中的数据依次是[8,12,15,28,28,32,36,39],要查找某个元素是否在数组中,下列说法正确的是( )
发布:2024/12/20 0:0:1组卷:3引用:1难度:0.7 -
3.有如下对分查找VB程序段:
若数组元素a(1)~a(10)的值依次为“5,9,13,18,22,27,31,39,40,44”,运行程序后,文本
框Text2中显示的内容为3,则输入的key值不可能为( )发布:2024/12/20 20:0:2组卷:3引用:2难度:0.4