Menu
CoddyTech

数组方法

本课属于 Coddy Ruby 学习旅程的“基础知识”单元。第 61 课,共 88 课。

Ruby 提供了多种内置方法,让数组操作变得更简单。使用这些方法,你无需自己编写复杂的代码,就能对元素进行排序、反转和查找。

sort 方法会按升序排列元素:

numbers = [3, 1, 4, 1, 5]
puts numbers.sort  # 输出:1, 1, 3, 4, 5

要反转元素的顺序,请使用 reverse 方法:

letters = ["a", "b", "c"]
puts letters.reverse  # 输出:c, b, a

你可以组合使用这些方法,按降序排序:

scores = [85, 92, 78, 95]
puts scores.sort.reverse  # 输出:95, 92, 85, 78

min 和 max 方法可以快速找出最小值和最大值:

prices = [29, 15, 42, 8]
puts prices.min  # 输出:8
puts prices.max  # 输出:42

要计算数值元素的总和,可以使用 sum:

quantities = [2, 5, 3]
puts quantities.sum  # 输出:10

注意,sort 和 reverse 会返回新数组,而不会更改原数组。若要直接修改原数组,请在方法名后加上 !,例如 sort! 或 reverse!。

challenge icon

挑战

简单

读取一行输入,其中包含用逗号分隔的整数(例如,5,2,8,1,9,3)。

将输入拆分为整数数组,然后按以下顺序分别输出,每项占一行:

  1. 按升序排序后的数组(每个元素单独占一行)
  2. 按降序排序后的数组(每个元素单独占一行)
  3. 最小值
  4. 最大值
  5. 所有元素的总和

在各部分之间输出一个空行,以便区分。

例如,如果输入是 5,2,8,1,9,3,输出应为:

1
2
3
5
8
9

9
8
5
3
2
1

1
9
28

如果输入是 10,30,20,输出应为:

10
20
30

30
20
10

10
30
60

如果输入是 7,3,5,1,输出应为:

1
3
5
7

7
5
3
1

1
7
16

亲手试试

# 读取以逗号分隔的整数
input = gets.chomp

# 在每个逗号处分割输入,并将每一部分转换为整数
numbers = input.split(",").map(&:to_i)

# TODO:在下方编写你的代码
# 1. 将数组按升序排序,并打印每个元素
# 2. 打印一个空行
# 3. 将数组按降序排序,并打印每个元素
# 4. 打印一个空行
# 5. 打印最小值
# 6. 打印最大值
# 7. 打印所有元素的总和
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Ruby 在线编译器