编程题:定义一个数组,存放若干整数(自行设置,至少5个),输出其中均差最小和最大的数,如果有2个或以上的数是最大(或最小)只需输出一个即可。 均差:与所有数的平均值的差值,如平均数是10,数组中某个数字是8,则均差为2;若数组中另一个数字是12,则均差也为2。
时间: 2024-10-19 12:04:19 浏览: 15
java 输入一个数字组成的数组(输出该数组的最大值和最小值)
编程题描述的是这样一个任务:你需要创建一个包含至少五个整数的数组,然后找到其中的最小值和最大值。特别的要求是,如果存在两个或更多的数与平均值的差相等,并且是最小或最大的,你只需要输出其中一个。为了计算均差,首先需要求出数组的平均值,然后对于每个元素,找出它与平均值的差,最后确定最小和最大的均差对应的数值。
以下是一个简单的Python示例实现:
```python
def min_max_deviation(arr):
# 计算平均值
avg = sum(arr) / len(arr)
# 初始化最小和最大均差及对应的值
min_dev = float('inf')
max_dev = float('-inf')
min_dev_num = None
max_dev_num = None
for num in arr:
diff = abs(num - avg)
if diff < min_dev:
min_dev = diff
min_dev_num = num
elif diff == min_dev and min_dev_num is not None:
continue # 如果已经找到了相同的最小差值,跳过
else:
if diff > max_dev:
max_dev = diff
max_dev_num = num
return min_dev_num, max_dev_num
# 测试
arr = [5, 9, 12, 7, 14]
min_dev, max_dev = min_max_deviation(arr)
print(f"均差最小的数是 {min_dev},对应的值是 {min_dev_num}")
print(f"均差最大的数是 {max_dev},对应的值是 {max_dev_num}")
```
阅读全文