从键盘读入大于1小于100的正整数n,再输入n个整数。要求找出两个最大值,分别为小于平均值的最大数和大于平均值的最大数,不考虑最大数和平均值相等的情况。输出这两个最大数和平均值,顺序为较小最大数,平均值(保留两位小数点),较大最大数。
时间: 2024-05-08 14:21:37 浏览: 90
以下是 Python 代码实现:
```python
n = int(input())
nums = list(map(int, input().split()))
avg = sum(nums) / n
less_max = float('-inf')
greater_max = float('-inf')
for num in nums:
if num < avg and num > less_max:
less_max = num
elif num > avg and num > greater_max:
greater_max = num
print('{:.2f} {:.0f} {:.0f}'.format(less_max, avg, greater_max))
```
解释一下:
首先读入正整数 n 和 n 个整数存入列表 nums 中。
计算平均值 avg。
然后循环遍历 nums 列表中的每个数 num,如果 num 小于平均值并且大于当前的 less_max,就将 less_max 更新为 num;如果 num 大于平均值并且大于当前的 greater_max,就将 greater_max 更新为 num。
最后使用格式化字符串输出 less_max、avg 和 greater_max,其中 {:.2f} 表示输出一个小数点后保留两位的浮点数,{:.0f} 表示输出一个整数,中间的空格用来分隔输出结果。
相关问题
从键盘读入大于1小于100的正整数n,再输入n个整数。要求找出两个最大值,分别为小于平均值的最大数和大于平均值的最大数,不考虑最大数和平均值相等的情况。输出这两个最大数和平均值,顺序为较小最大数,平均值(保
好的,以下是Python代码实现:
```python
n = int(input("请输入大于1小于100的正整数n:"))
nums = []
for i in range(n):
num = int(input("请输入第{}个整数:".format(i+1)))
nums.append(num)
avg = sum(nums) / len(nums)
max1 = float("-inf") # 小于平均值的最大数
max2 = float("-inf") # 大于平均值的最大数
for num in nums:
if num < avg and num > max1:
max1 = num
elif num > avg and num > max2:
max2 = num
print("较小最大数:{}".format(max1))
print("平均值:{}".format(avg))
print("较大最大数:{}".format(max2))
```
这段代码首先读入n和n个整数,并计算它们的平均值。然后遍历这n个整数,更新小于平均值的最大数和大于平均值的最大数。最后输出这两个最大数和平均值。
输入正整数n再输入n个整数,求n个整数中最大值并输出用c语言
在C语言中,你可以通过循环结构遍历数组来找到最大值。这里是一个简单的示例程序:
```c
#include <stdio.h>
int main() {
int n, num, max_num = INT_MIN; // 初始化最大值为负无穷大
printf("请输入正整数n: ");
scanf("%d", &n);
if (n <= 0) {
printf("错误:n需要大于0。\n");
return 1;
}
printf("请输入%d个整数:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &num);
// 如果当前数值比已知的最大值大,则更新最大值
if (num > max_num) {
max_num = num;
}
}
printf("这组数字中的最大值是: %d\n", max_num);
return 0;
}
```
在这个程序中,我们首先读取用户输入的整数`n`,然后检查它是否为正数。接着,我们用一个for循环读入`n`个整数,并在每次迭代时检查是否更新了最大值。最后,我们输出找到的最大值。
阅读全文