gpt4 book ai didi

ruby - 意外的 $end ,期待 kEND

转载 作者:数据小太阳 更新时间:2023-10-29 08:20:29 24 4
gpt4 key购买 nike

我的任务是使用 Ruby 编写更高效的二进制搜索代码。我遵循了此链接中的逻辑: http://www.cprogramming.com/discussionarticles/sorting_and_searching.html

我的代码如下:

def bsearch(a, k)

lower = 0
upper = a.length-1

while a[upper].to_f> k.to_f and a[lower].to_f< k.to_f
low_diff = k.to_f -a[lower].to_f
range_diff = a[upper].to_f-a[lower].to_f
count_diff = upper-lower
range = low_diff/range_diff * count_diff + lower

if k==a[lower]
return lower

if k.to_f > a[range].to_f
lower = range+1
else if k.to_f < a[range].to_f
upper =range
else
lower = range
end

end
end

我仔细检查,但我不知道为什么我一直遇到以下错误:

unexpected $end , expecting kEND

最佳答案

您在 if 语句之一中丢失了 end。而不是 else if,Ruby 中的关键字是 elsif

if k==a[lower]
return lower
end #lost this end
if k.to_f > a[range].to_f
lower = range+1
elsif k.to_f < a[range].to_f #use elsif
upper =range
else
lower = range
end

关于ruby - 意外的 $end ,期待 kEND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18973899/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com