首页 > 解决方案 > 在同一行接收值

问题描述

我需要在同一行中接收三个值,将其中两个值相乘后,我的程序在第三次输入后停止并返回零。

code_product_1, units_product_1, price_product_1 = gets.split(' ')
code_product_2, units_product_2, price_product_2 = gets.split(' ')

total = (units_product_1.to_i * price_product_1.to_f) + (units_product_2.to_i * price_product_2.to_f)

puts "VALOR A PAGAR: R$ #{'%.2f' % total}"

问题描述:

在这个问题中,任务是读取产品 1 的代码,产品 1 的单位数量,产品 1 的单位价格,产品 2 的代码,产品 2 的单位数量和价格1 件产品 2. 之后,计算并显示要支付的金额。

输入 输入文件包含两行数据。每行将有 3 个值:两个整数和一个小数点后 2 位的浮点值。

输出 输出文件必须是类似于以下示例的消息,其中“Valor a pagar”表示要支付的价值。记住“:”和“R$”符号后面的空格。该值必须在点后以 2 位数字表示。

编辑:输入和输出样本

输入样本

输出样本

编辑2:

在此处输入图像描述

标签: rubyuri

解决方案


total是零,因为从用户那里收集的一些值是nil

为了total免于计算nil,您需要从用户那里收集两条数据,每条数据都可以split分为三个值。

这是一个例子:

irb> code_product_1, units_product_1, price_product_1 = gets.split(' ')
1 2 3
=> ["1", "2", "3"]
irb> code_product_1
=> "1"
irb> units_product_1
=> "2"
irb> price_product_1
=> "3"

对你的_2输入做同样的事情,然后你就可以完成你的总计算。

注意:这不包括输入或输出文件。问题中提到了这一点,但共享的代码要求用户使用gets.


推荐阅读