Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对于Ruby来说,我的程序会返回错误;字符串可以';不要被强迫使用fixnum“; 我试图制作3个简单的程序,我已经用Python完成了,C++我也经历过。然而,Ruby对我来说是非常陌生的。 这是我的代码,有人能告诉我为什么会收到错误消息“String不能强制为fixnum” c=1 a=0 打印(“请输入您的姓名:”) name=gets.chomp 打印(“请输入学生编号的最后一位:”) b=获得 l=name.length 而模运算符(%)不能应用于左侧的数字和右侧的字符串。您需要先将b转换为整数,然后再将模与(“to integer”):_Ruby_String - Fatal编程技术网

对于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