def peakFinder_1array arrayappend-10 i = 0 while i lenarray - 2 if arrayi = arrayi - 1 and arrayi = arrayi + 1 return arrayi else i += 1程序无输出应该怎么改正
要想改正程序,可以考虑以下几个问题:
- 循环的终止条件是否正确:循环应该在
i < (len(array) - 1)时终止,因为判断条件涉及到array[i+1]。 - 数组是否越界:在判断条件中,需要确保
i不会小于0,所以循环应该从1开始,而不是从0开始。 - 判断条件是否正确:判断条件应该是
array[i] >= array[i-1]和array[i] >= array[i+1],而不是array[i] >= array[i-1]和array[i] >= array[i+1]。
根据以上问题,我们来修改程序:
def peakFinder_1(array):
array.append(-10)
i = 1
while i < (len(array) - 1):
if array[i] >= array[i - 1] and array[i] >= array[i + 1]:
return array[i]
else:
i += 1
这样修改后,程序应该能够正确输出结果。
原文地址: http://www.cveoy.top/t/topic/i7zD 著作权归作者所有。请勿转载和采集!