对于Ruby来说,我的程序会返回错误;字符串可以';不要被强迫使用fixnum“; 我试图制作3个简单的程序,我已经用Python完成了,C++我也经历过。然而,Ruby对我来说是非常陌生的。 这是我的代码,有人能告诉我为什么会收到错误消息“String不能强制为fixnum” c=1 a=0 打印(“请输入您的姓名:”) name=gets.chomp 打印(“请输入学生编号的最后一位:”) b=获得 l=name.length 而模运算符(%)不能应用于左侧的数字和右侧的字符串。您需要先将b转换为整数,然后再将模与(“to integer”):
我还删除了不必要的括号 我认为错误在于:对于Ruby来说,我的程序会返回错误;字符串可以';不要被强迫使用fixnum“; 我试图制作3个简单的程序,我已经用Python完成了,C++我也经历过。然而,Ruby对我来说是非常陌生的。 这是我的代码,有人能告诉我为什么会收到错误消息“String不能强制为fixnum” c=1 a=0 打印(“请输入您的姓名:”) name=gets.chomp 打印(“请输入学生编号的最后一位:”) b=获得 l=name.length 而模运算符(%)不能应用于左侧的数字和右侧的字符串。您需要先将b转换为整数,然后再将模与(“to integer”):,ruby,string,Ruby,String,我还删除了不必要的括号 我认为错误在于: if ((c%b)==0) 如果是这样,原因是您有b=get。由于get实际上是一个字符串,所以您试图执行类似于5%'3'的操作,这是无效的 您应该改为使用b=gets.chomp,然后使用b.to_i,如下所示: c=1 a=0 print("Please Enter Your Name: ") name=gets.chomp print("Please Enter the Last Digit of Your Student Number: ")
if ((c%b)==0)
如果是这样,原因是您有b=get
。由于get实际上是一个字符串,所以您试图执行类似于5%'3'的操作,这是无效的
您应该改为使用b=gets.chomp
,然后使用b.to_i
,如下所示:
c=1
a=0
print("Please Enter Your Name: ")
name=gets.chomp
print("Please Enter the Last Digit of Your Student Number: ")
b= gets.chomp
l=name.length
while a<l do
if ((c%b.to_i)==0)
print name[a]
else
puts name[a]
end
c+=1
a+=1
end
c=1
a=0
打印(“请输入您的姓名:”)
name=gets.chomp
打印(“请输入学生编号的最后一位:”)
b=get.chomp
l=name.length
而a则需要显式地将变量b从get转换为整数
while a<l do
if ((c%b.to_i)==0)
print name[a]
else
puts name[a]
end
虽然aThat已经完美地修复了它,谢谢。我没有意识到输入是一个字符串!
c=1
a=0
print("Please Enter Your Name: ")
name=gets.chomp
print("Please Enter the Last Digit of Your Student Number: ")
b= gets.chomp
l=name.length
while a<l do
if ((c%b.to_i)==0)
print name[a]
else
puts name[a]
end
c+=1
a+=1
end
while a<l do
if ((c%b.to_i)==0)
print name[a]
else
puts name[a]
end