-4

在第二个函数中创建了 2 个调用气泡排序的函数。

  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>")

它没有打印排序的输出

4

2 回答 2

0

你没有在任何地方调用你的 main() 函数。

尝试main()在最后raw_input一行之前添加。

此外,从复制到堆栈溢出的位置,您的空白似乎有点混乱。例如,该return s行应该在bubblesort函数内部。

另一个错误是,对于 line print "Your input: " + x,您需要转换x为字符串。所以str(x)改为。

于 2013-10-21T22:31:01.757 回答
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 = range(len(s)-1) 在“for j in i”行中而不是“for j in range(len(s)-1)”时。

于 2013-10-22T22:11:44.327 回答