Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion 01-hello.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@

# ...

puts "(请替换成最后的答案)"
puts "Hello, #{your_name}"
5 changes: 3 additions & 2 deletions 02-variable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@
puts "a 是 #{a}"
puts "b 是 #{b}"

# ...
c = a
a = b
b = c

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

4 changes: 3 additions & 1 deletion 03-triangle.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
print "请输入直角三角形的底边,然后按 Enter: "
b = gets


# .....
s = (a.to_f*a.to_f)/2

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

# .....
s1 = pizzas
s2 = people
t1 = s1.to_i/s2.to_i
t2 = s1.to_i%s2.to_i

puts "每人可分得几片: _________ 片"
puts "还剩下几片: _________ 片"

puts "每人可分得几片: #{t1} 片"
puts "还剩下几片: #{t2} 片"
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

# .....
w = weight
h = height
b = w.to_f/(h.to_f*h.to_f)*100*100

puts "您的 BMI 是: _________"
if b < 18.5
t = "过轻"
elsif b >= 24
t = "过重"
else ( b >= 18.5 ) && ( b < 24 )
t = "正常"
end

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

puts "您的 BMI 结果是: #{t}(过轻或正常或过重)"
21 changes: 19 additions & 2 deletions 06-interger-positive.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,23 @@
x = gets

# ....
s = x.to_i
s1 = s%2

puts "这个数是_____ (正数或零或负数)"
puts "这个数是_____ (偶数或奇数)"
if s < 0
t = "负数"
elsif s > 0
t = "正数"
else
t = "零"
end

if s1 > 0
t1 = "奇数"
elsif s1 == 0
t1 = "偶数"
end


puts "这个数是: #{t}(正数或零或负数)"
puts "这个数是: #{t1} (偶数或奇数)"
40 changes: 39 additions & 1 deletion 07-abcde.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,43 @@
z = gets

# ....
=begin
t1 = x.to_i
t2 = y.to_i
t3 = z.to_i

puts "结果是________(A或B或C或D或E)"
if t1 < 0
s = "A"
elsif t1 > 0 && t2 > 0 && t3 > 0
s = "B"
elsif t1 > 0 && t2 > 0 && t3 < 0
s = "C"
elsif t1 > 0 && t2 < 0 && t3 > 0
s = "D"
else t1 >0 && t2 < 0 && t3 < 0
s = "E"
end
=end

x = x.to_i
y = y.to_i
z = z.to_i

if x < 0
s = "A"
elsif x > 0 && y > 0
if z > 0
s = "B"
elsif z < 0
s = "C"
end
elsif x > 0 && y < 0
if z > 0
s = "D"
elsif z < 0
s = "E"
end
end


puts "结果是: #{s} (A或B或C或D或E)"
17 changes: 16 additions & 1 deletion 08-find-max.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,20 @@
z = gets

# ....
x = x.to_i
y = y.to_i
z = z.to_i

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


if x >= y && x >= z
t = "x"
elsif y >= z && y >= x
t = "y"
elsif z >= x && z >= y
t = "z"
end

# t = [x, y, z].max

puts "最大的数是: #{t} (x或y或z)"
5 changes: 4 additions & 1 deletion 09-function.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

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

print "请输入直角三角形的高,然后按 Enter: "
Expand All @@ -12,4 +15,4 @@ def calculate_area(a, b)

answer = calculate_area(a,b)

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

def find_max(x, y, z)
x = x.to_f
y = y.to_f
z = z.to_f

if x >= y && x >= z
t = "x"
elsif y >= z && y >= x
t = "y"
elsif z >= x && z >= y
t = "z"
end

end

print "请输入一个数字x,然后按 Enter: "
Expand All @@ -16,4 +28,4 @@ def find_max(x, y, z)

answer = find_max(x,y,z)

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

# ....

i+=1
end
if i % 7 == 0
puts i
end
i += 1

end
7 changes: 6 additions & 1 deletion 12-sum-even.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,12 @@

# ....

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

i+=1
end

puts total
puts total
13 changes: 12 additions & 1 deletion 13-nn.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,21 @@

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

# while ( ... )
# while ( ...)
#
# end
# end

x = 0
while x <= n
y = 0
while y <= n
puts "#{x} x #{y} = #{x*y}"
y += 1
end
x += 1
end
18 changes: 18 additions & 0 deletions 14-prime.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,24 @@

def is_prime(n)
# ....
if n < 2
return false
end

if n == 2
return true
end

if n > 2
i = 2
while i <= n/2
if n % i == 0
return false
end
i += 1
end
return true
end
end

print "请输入数字 N,然后按 Enter: "
Expand Down
6 changes: 5 additions & 1 deletion 15-guess-number.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@
if n.to_i == target
puts "恭喜猜中啦! "
break
elsif n.to_i > target
puts "太高了,再猜一次"
elsif n.to_i < target
puts "太低了,再猜一次"
end

end
end
8 changes: 7 additions & 1 deletion 16-array-sum.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,16 @@

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

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

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

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

puts arr.to_s

puts "总和是 _____"
puts "平均是 _____"
puts "最大值是 _____"
puts "最小值是 _____"
sum = 0
m = n = arr[0]
arr.each do |i|
sum += i
if m < i
m = i
end
if n > i
n = i
end
end

average = sum / arr.size


puts "总和是 #{sum}"
puts "平均是 #{average}"
puts "最大值是 #{m}"
puts "最小值是 #{n}"
8 changes: 7 additions & 1 deletion 18-square.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@
print "请输入数字 N,然后按 Enter: "
n = gets

n = n.to_i

(0..n-1).each_with_index do |i|
# arr.push (i*i)
arr << i ** 2
end
# ...

puts arr.to_s
puts arr.to_s
9 changes: 8 additions & 1 deletion 19-filter.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,15 @@

def filter_even(arr)
#...
arr2 = []
arr.each do |i|
if i % 2 == 0
arr2.push (i)
end
end
arr2
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: 9 additions & 1 deletion 20-sorting.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,17 @@

def filter_even(arr)
#...
arr2 = []
arr.each do |i|
if i % 2 == 0
arr2.push(i)
end
end
arr2 = arr2.uniq
arr2 = arr2.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