-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 に答える