def bubble_sort(n): arr=len(n) for i in range(arr): for j in range(0,arr-i-1): if n[j]>n[j+1]: n[j+1],n[j]=nr[j+1],n[j] return n d = int(input()) k = [] for i in range(d): k.append(input()) for i in range(d): bubble_sort(k) print(k[i])这个代码又什么问题嘛
时间: 2023-05-29 08:07:06 浏览: 129
这个代码存在以下问题:
1. 第一行的冒号后面缺少缩进。
2. 第二行的变量名应该是 `length` 而不是 `arr`。
3. 在第 3 行和第 4 行之间应该有一个缩进。
4. 在第 4 行中,变量 `j` 的范围应该是从 `0` 到 `arr-i-2`,而不是 `0` 到 `arr-i-1`。因为最后一个元素已经在前面的比较中被排序过了。
5. 在第 5 行中,交换元素的语句中变量名写成了 `nr` 而不是 `n`。
6. 在第 7 行中,应该在循环结束后返回已排序的列表,而不是在第一次循环结束后就返回。
7. 在第 10 行中,应该使用 `int(input())` 将输入转换为整数。
8. 在第 12 行中,字符串应该用引号括起来。
9. 在第 14 行中,应该使用 `range(len(k))` 而不是 `range(d)` 来循环遍历已排序的列表。
以下是修改后的代码:
```python
def bubble_sort(n):
length = len(n)
for i in range(length):
for j in range(length - i - 1):
if n[j] > n[j + 1]:
n[j + 1], n[j] = n[j], n[j + 1]
return n
d = int(input())
k = []
for i in range(d):
k.append(input())
for i in range(len(k)):
bubble_sort(k)
print(k[i])
```
阅读全文