def bubblesort(s):
for i in range(len(s)-1):
for j in i:
if x[j]>s[j+1]:
p=s[j+1]
s[j+1]=s[j]
s[j]=p
return s
def main():
x=[]
z=1
while z<=4:
y = int(raw_input("enter your numbers: "))
z +=1
x.append(y)
print "Your input: " + x
print bubblesort(x)
raw_input ("press<enter>")
它不打印已排序的输出
答案 0 :(得分:0)
你没有在任何地方调用你的main()函数。
尝试在最终main()
行之前添加raw_input
。
此外,您的空白似乎与您复制到堆栈溢出的地方有点混乱。例如,return s
行应位于bubblesort
函数内。
另一个错误是,对于行print "Your input: " + x
,您需要将x
转换为字符串。所以str(x)
代替。
答案 1 :(得分:0)
有效的代码:
def bubblesort(s):
p = 0
for i in range(len(s)-1):
for j in range(len(s)-1):
if s[j]>s[j+1]:
p=s[j+1]
s[j+1]=s[j]
s[j]=p
return s
def main():
x=[]
z=1
while z<=6:
y = int(raw_input("enter your numbers: "))
z +=1
x.append(y)
print "Your input: " + str(x)
print bubblesort(x)
main()
raw_input ("pres<enter>")
但我需要知道为什么我不能迭代一个int类型'i'。当i =范围(len(s)-1)在'for j in i'而不是'for j in range(len(s)-1)'时。