编写程序,将数列中大于平均值的元素往前放,小于平均值的数往后放。数列输入、数列输出、数列求平均值、数列重排分别用四个子函数实现。
时间: 2023-06-18 07:06:13 浏览: 98
计算机VB考试题.pdf
以下是Python的实现代码:
```python
def input_list():
n = int(input("请输入数列的长度:"))
lst = []
for i in range(n):
lst.append(int(input("请输入第{}个元素:".format(i+1))))
return lst
def output_list(lst):
print("重排后的数列为:")
for i in lst:
print(i, end=' ')
print()
def average(lst):
return sum(lst) / len(lst)
def rearrange(lst):
avg = average(lst)
left, right = 0, len(lst) - 1
while left < right:
while lst[left] > avg and left < right:
left += 1
while lst[right] < avg and left < right:
right -= 1
lst[left], lst[right] = lst[right], lst[left]
return lst
lst = input_list()
lst = rearrange(lst)
output_list(lst)
```
首先,`input_list`函数用于输入数列,返回一个列表。`output_list`函数用于输出数列,接受一个列表作为参数。`average`函数用于求平均值,接受一个列表作为参数,返回平均值。`rearrange`函数用于重排数列,接受一个列表作为参数,返回重排后的数列。
重排数列的思路是:设平均值为avg,从左往右找到第一个小于等于avg的数,从右往左找到第一个大于等于avg的数,将它们交换位置。重复这个过程,直到左指针大于等于右指针。
最后,我们调用这些函数,实现输入、求平均值、重排、输出的功能。
阅读全文