Skip to content
4 changes: 2 additions & 2 deletions 01-hello.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# 题目: 输入名字,输出 "Hello, 名字"

print "请输入你的名字,然后按 Enter: "
your_name = gets
zhoujin = gets

# ...

puts "(请替换成最后的答案)"
puts "hello,#{zhoujin}"
5 changes: 2 additions & 3 deletions 02-variable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,10 @@
a = 1
b = 2

puts "a #{a}"
puts "b #{b}"
puts "a = #{b}"
puts "b = #{a}"

# ...

puts "a 应该是 2,现在是 #{a}"
puts "b 应该是 1,现在是 #{b}"

4 changes: 2 additions & 2 deletions 03-triangle.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@
b = gets

# .....

puts "直角三角形的面积是: _________"
s = a.to_f * b.to_f / 2
puts "直角三角形的面积是:#{s}"
7 changes: 4 additions & 3 deletions 04-pizzas.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
people = gets

# .....

puts "每人可分得几片: _________ 片"
puts "还剩下几片: _________ 片"
a = pizzas.to_i / people.to_i
b = pizzas.to_i % people.to_i
puts "每人可分得几片: _#{a}片"
puts "还剩下几片:#{b}片"
15 changes: 13 additions & 2 deletions 05-bmi.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,18 @@
height = gets

# .....
bmi = ( weight.to_f * 10000/ ( height.to_f * height.to_f ) )
puts "您的 BMI 是: #{bmi}"

puts "您的 BMI 是: _________"

puts "您的 BMI 结果是: _________(过轻或正常或过重)"


if bmi < 18.5
puts "您的BMI结果是:过轻"

elsif bmi >= 24
puts "您的BMI结果是:过重"

else
puts "您的BMI结果是:正常"
end
16 changes: 13 additions & 3 deletions 06-interger-positive.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,17 @@
print "请输入一个整数,然后按 Enter: "
x = gets

# ....

puts "这个数是_____ (正数或零或负数)"
puts "这个数是_____ (偶数或奇数)"
if x.to_i > 0
puts "这个数是正数"
elsif x.to_i == 0
puts "这个数是零"
else
puts "这个数是负数"
end

if x.to_i % 2 == 0
puts "这个数是偶数"
else
puts "这个数是奇数"
end
24 changes: 20 additions & 4 deletions 07-abcde.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,30 @@
# 当 z < 0 输出 "E"

print "请输入一个整数x,然后按 Enter: "
x = gets
x = gets.to_i

print "请输入一个整数y,然后按 Enter: "
y = gets
y = gets.to_i

print "请输入一个整数z,然后按 Enter: "
z = gets
z = gets.to_i

# ....

puts "结果是________(A或B或C或D或E)"
if x > 0
if y > 0
if z > 0
puts "结果是B"
elsif z < 0
puts "结果是C"
end
elsif y < 0
if z > 0
puts "结果是D"
elsif z < 0
puts "结果是E"
end
end
elsif x < 0
puts "结果是A"
end
9 changes: 8 additions & 1 deletion 08-find-max.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,11 @@

# ....

puts "最大的数是 ________(x或y或z)"

if x >= y && x >= z
puts "最大的数是x"
elsif y >= x && y >= z
puts "最大的数是y"
else
puts "最大的数是z"
end
8 changes: 4 additions & 4 deletions 09-function.rb
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# 题目: 输入直角三角形的宽和高,输出三角形的面积

def calculate_area(a, b)
# ....
a * b / 2
end

print "请输入直角三角形的高,然后按 Enter: "
a = gets
a = gets.to_i

print "请输入直角三角形的底边,然后按 Enter: "
b = gets
b = gets.to_i

answer = calculate_area(a,b)

puts "直角三角形的面积是: #{answer}"
puts "直角三角形的面积是: #{answer}"
15 changes: 11 additions & 4 deletions 10-function.rb
Original file line number Diff line number Diff line change
@@ -1,19 +1,26 @@
# 题目: 使用者输入 x,y,z,请输出三个数中最大的数

def find_max(x, y, z)
if x >= z && x >= z
return x
elsif y >= x && y >= z
return y
else
return z
end
end

print "请输入一个数字x,然后按 Enter: "
x = gets
x = gets.to_f

print "请输入一个数字y,然后按 Enter: "
y = gets
y = gets.to_f

print "请输入一个数字z,然后按 Enter: "
z = gets
z = gets.to_f

# ....

answer = find_max(x,y,z)

puts "最大的数是 #{answer}"
puts "最大的数是 #{answer}"
6 changes: 4 additions & 2 deletions 11-seven.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
i = 1
while ( i <= 100 )

# ....
if i % 7 == 0
puts i
end

i+=1
end
end
8 changes: 5 additions & 3 deletions 12-sum-even.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@

while ( i <= 100 )

# ....

if i % 2 == 0
total += i
end

i+=1
end

puts total
puts total
12 changes: 10 additions & 2 deletions 13-nn.rb
Original file line number Diff line number Diff line change
@@ -1,11 +1,19 @@
# 题目: 输入一个数字 N,输出 N * N 乘法表

print "请输入数字 N,然后按 Enter: "
n = gets
n = gets.to_i
i = 1

while ( i <= n )
j = i
while ( j <= n )
puts " #{i} * #{j} = #{i*j}"
j += 1
end
i += 1
end
# while ( ... )
# while ( ...)
#
# end
# end

11 changes: 10 additions & 1 deletion 14-prime.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,16 @@
# 输入一个数字 N,请检查是不是质数

def is_prime(n)
# ....
i = 2
while ( i <= (n/2) )
if n % i == 0
return false
break
else
i += 1
end
end
return true
end

print "请输入数字 N,然后按 Enter: "
Expand Down
14 changes: 7 additions & 7 deletions 15-guess-number.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@
while (true)
print "请猜一个 0~99 的数字 N,然后按 Enter: "
n = gets

#puts "太低了,再猜一次"
#puts "太高了,再猜一次"

if n.to_i == target
if n.to_i < target
puts "太低了,再猜一次"
elsif
n.to_i > target
puts "太高了,再猜一次"
else n.to_i == target
puts "恭喜猜中啦! "
break
end

end
end
9 changes: 7 additions & 2 deletions 16-array-sum.rb
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
# 给定一阵列内含数字,输出最大值

def find_max(array)
#....
m = array[0]
array.each do |i|
if m <= i
m = i
end
end
m
end

arr = [8, 12, 36, 53, 9, 75, 3, 71, 59, 88]

max = find_max(arr)
puts "Max is #{max}" # 应该是 88

21 changes: 17 additions & 4 deletions 17-array-stats.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,20 @@

puts arr.to_s

puts "总和是 _____"
puts "平均是 _____"
puts "最大值是 _____"
puts "最小值是 _____"
def sum(arr)
sum = 0
for i in arr
sum += i
end
return sum
end

def average(arr)
return sum(arr) /arr.size
end


puts "总和是 #{sum(arr)}"
puts "平均是 #{average(arr)}"
puts "最大值是 #{arr.max}"
puts "最小值是 #{arr.min}"
11 changes: 8 additions & 3 deletions 18-square.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,13 @@
arr = []

print "请输入数字 N,然后按 Enter: "
n = gets
n = gets.to_i

# ...
i = 0
while ( i < n )
arr.push(i * i)
i += 1
end

puts arr.to_s

puts arr.to_s
10 changes: 8 additions & 2 deletions 19-filter.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
# 给定一阵列内含数字,输出另一个数组只包含偶数

def filter_even(arr)
#...
even_arr = []
arr.each do |n|
if (n % 2 == 0)
even_arr.push(n)
end
end
return even_arr
end

arr = [7, 68, 42, 46, 9, 91, 77, 46, 86, 1]

puts filter_even(arr).to_s # 应该是 [68, 42, 46, 46, 86]
puts filter_even(arr).to_s # 应该是 [68, 42, 46, 46, 86]
10 changes: 8 additions & 2 deletions 20-sorting.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,16 @@
# Hint: 可用 arr.sort 排序,和 arr.uniq 去除重复

def filter_even(arr)
#...
even_arr = []
arr.each do |n|
if n % 2 == 0
even_arr.push(n)
end
end
return even_arr.uniq.sort
end

arr = [7, 68, 42, 46, 9, 91, 77, 46, 86, 1]


puts "________" # 应该是 [42, 46, 68, 86]
puts filter_even(arr).to_s # 应该是 [42, 46, 68, 86]
Loading