-8

基本上我试图在不使用.sort的情况下在 ruby​​ 中创建一个 BASIC 排序程序。到目前为止,这是我的代码:

def optsort
@@a = 0
@@aa= 1
@@b = unsorted.size
@@smallestnum
@@ssmallestnum

while b !=1
if unsorted[a] <= unsorted[b] then
@@smallestnum = unsorted[b]
else @@smallestnu = unsorted[a]
end




@@a = @@a + 
@@aa = @@a + 1
b = b - 1
end

请帮我写代码。另外:我在运行它时收到这些错误消息:

(eval):465: (eval):465: compile error (SyntaxError)
(eval):465: syntax error, unexpected $end, expecting kEND

该代码应该从最小到最大对数字进行排序。

4

1 回答 1

1
if unsorted[0] <<== unsorted[1] then numsmall = unsorted[a] 
               ^
(eval):51: syntax error, unexpected kTHEN, expecting kEND

这一点^指向这里的第一个问题。 <<==不是 ruby​​ 中的合法运算符,因此出现语法错误。也许您的意思是“小于或等于” <=

if unsorted[a] <= unsorted[b]

此外,缩进将帮助您更好地理解流程,尝试像这样重写:

if unsorted[a] <= unsorted[b]
  numsmall == unsorted[a]
else
  numsmall = unsorted[b]
end
于 2012-06-21T23:56:52.780 回答