程序运行,提示用户输入数字序列“<排序数字序列>”, 用户输入N个数字(N-1个空格分隔)并回车,程序对用户输入的数字进行冒泡排序(升序),输出每轮冒泡结果(若某一轮冒泡结果和上一轮相比无变化则不输出并结束排序!但若用户输入已经排好序则需输出1次排序结果)。每轮输出格式为N个数字用N-1个空格分割,1轮冒泡结果占1行,输出最终结果后换行,输出所有数字的平均值,程序结束
时间: 2023-05-24 13:04:33 浏览: 66
python练习题 :用户任意输入10个整数到列表中,然后由大到小排列并输出。
示例输入:
<排序数字序列> 3 7 2 9 4
示例输出:
3 2 7 4 9
2 3 4 7 9
1 3 4 7 9
排序完成!
平均值为:5.0
```python
nums = list(map(int, input().split()))
n = len(nums)
for i in range(n):
is_sorted = True # 标记本轮是否发生交换
for j in range(n-1-i):
if nums[j] > nums[j+1]:
nums[j], nums[j+1] = nums[j+1], nums[j]
is_sorted = False
if is_sorted: # 如果本轮没有发生交换,说明已经排好序,结束循环
break
print(' '.join(map(str, nums)))
print('排序完成!')
print('平均值为:{:.1f}'.format(sum(nums)/n))
```
阅读全文