gpt4 book ai didi

ruby - 如何创建一个程序来接受用户的十个数字?

转载 作者:行者123 更新时间:2023-12-03 08:18:54 27 4
gpt4 key购买 nike

我正在创建一个程序,该程序接受来自用户的十个数字。然后,它显示十个数字的总和,它们的平均值以及最小和最大的数字。最后,它应该显示单词“Jackpot!”。输入的每个大于或等于100的数字,以及“Tough Luck”。每少于100个数字。

我的代码似乎无法正常运行,并且无法在Ruby中运行。

puts 'Please enter 10 numbers one at a time.' 
num1=gets.chomp
num2=gets.chomp
num3=gets.chomp
num4=gets.chomp
num5=gets.chomp
num6=gets.chomp
num7=gets.chomp
num8=gets.chomp
num9=gets.chomp
num10=gets.chomp
value_list=[num1, num2, num3, num4, num5, num6, num7, num8, num9, num10]
subtotal=0
for x in 0..9
subtotal=subtotal+value_list[x]
puts 'Total: ' + subtotal
average=subtotal/10.to_f
average=sprintf("%.2f",average)
puts 'Average: ' + average
puts 'Smallest value: ' + sprintf("%.2f",value_list.min.to_s)
puts 'Largest value: ' + sprintf("%.2f",value_list.min.to_s)
if num1..num10 >=100
puts 'Jackpot!'
else
puts 'Tough Luck.'
sleep 120

最佳答案

一些东西:

  • 您需要对块进行end:for ... endif ... else ... end等。这是它无法运行的主要原因,即解析器无法将其识别为有效语法。
  • gets.chomp返回一个字符串,但是您正在寻找整数。尝试使用gets.chomp.to_i强制使用整数类型。
  • 'Total: ' + subtotal:您将在字符串中添加一个整数,这是不允许的。 Ruby字符串插值如下(需要双引号):"Total: #{subtotal}"。这会将subtotal变量转换为字符串,然后将其动态插入其他字符串。
  • 我不确定您要在这里做什么:if num1..num10 >= 100。如果范围中的任何成员大于100或总和大于100,这是否是?

  • 您还可以在此处进行很多优化。一个好机会是当您有很多重复的代码时,例如 num1 = gets.chomp.to_i; num2 = gets ... etc

    这是程序的一个版本,(我认为)可以实现您想要的功能。如果您认真学习Ruby,请查阅以下方法的文档( <<inject.times等):
    puts 'Please enter 10 numbers one at a time.' 
    value_list = []
    10.times do
    value_list << gets.chomp.to_i
    end

    subtotal = value_list.inject(:+)

    puts "Total: #{subtotal}"
    puts "Average: #{(subtotal/10.0).round(2)}"
    puts "Smallest value: #{value_list.min}"
    puts "Largest value: #{value_list.max}"

    if subtotal >= 100
    puts 'Jackpot!'
    else
    puts 'Tough Luck.'
    end

    希望这可以帮助。

    关于ruby - 如何创建一个程序来接受用户的十个数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14719847/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com