用python写以下程序,任务一:实现统计问题1关键算法并绘制流程图 输出数组第 k 大的数。 说明:首先输入一个整数 n,代表数组的长度,随后输入 n 个数,代表数组的元素,最 后输入一个整数 k,你需要输出这 n 个数中第 k 大的数(0<k<=n)。 例如输入: 5 5 3 1 2 4 3 输出这 5 个数中第 3 大的数: 3 注意:使用数组完成。 任务二:实现统计问题2关键算法并绘制流程图 统计给定的 n 个数中,负数、零和正数的个数。对于每组输入数据,输出一行 a,b 和 c, 分别表示给定的数据中负数、零和正数的个数。首先输入一个数 n,代表有需要统计的有 n 个数,然后输入 n 个数。 例如输入: 5 1 2 3 0 -4 输出: 1 1 3 注意:使用数组和判断语句完成。 任务三:实现统计问题3关键算法并绘制流程图 用户依次输入n个数,输出这n个数中的最大数和最小数。首先输入一个数 n,代表有需要统计的有 n 个数,然后输入 n 个数。
时间: 2024-02-22 08:55:31 浏览: 213
很高兴回答你的问题!以下是任务一、任务二、任务三的Python代码:
任务一:
```python
n = int(input("请输入数组长度n:"))
arr = []
for i in range(n):
num = int(input(f"请输入第{i+1}个数:"))
arr.append(num)
k = int(input("请输入k:"))
def quick_select(arr, k):
if len(arr) == 1:
return arr[0]
else:
pivot = arr[0]
bigger = []
smaller = []
equal = []
for num in arr:
if num > pivot:
bigger.append(num)
elif num < pivot:
smaller.append(num)
else:
equal.append(num)
if k <= len(bigger):
return quick_select(bigger, k)
elif k <= len(bigger) + len(equal):
return pivot
else:
return quick_select(smaller, k - len(bigger) - len(equal))
result = quick_select(arr, k)
print(f"数组中第{k}大的数是{result}")
```
任务二:
```python
n = int(input("请输入需要统计的数的个数n:"))
arr = []
for i in range(n):
num = int(input(f"请输入第{i+1}个数:"))
arr.append(num)
positive = 0
negative = 0
zero = 0
for num in arr:
if num > 0:
positive += 1
elif num < 0:
negative += 1
else:
zero += 1
print(f"负数个数:{negative}")
print(f"零的个数:{zero}")
print(f"正数个数:{positive}")
```
任务三:
```python
n = int(input("请输入需要统计的数的个数n:"))
arr = []
for i in range(n):
num = int(input(f"请输入第{i+1}个数:"))
arr.append(num)
max_num = arr[0]
min_num = arr[0]
for num in arr:
if num > max_num:
max_num = num
if num < min_num:
min_num = num
print(f"最大数是{max_num}")
print(f"最小数是{min_num}")
```
希望能帮到你!
阅读全文