本题要求编写程序,将输入的n个整数存入数组a中,然后计算这些数的平均值,再输出所有大于平均值的数。 输入格式: 输入在第1行中给出一个正整数n(1≤n≤10),第2行输入n个整数,其间以空格分隔。题目保证数据不超过长整型整数的范围。 输出格式: 输出在第1行给出平均值,保留2位小数。在第2行输出所有大于平均值的数,每个数的后面有一个空格;如果没有满足条件的数,则输出空行。 如果输入的n不在有效范围内,则在一行中输出"invalid."。
时间: 2023-05-31 20:17:46 浏览: 266
### 回答1:
以下是Python代码:
n = int(input())
if n < 1 or n > 10:
print("invalid.")
else:
a = list(map(int, input().split()))
avg = sum(a) / n
print("{:.2f}".format(avg))
flag = False
for i in a:
if i > avg:
print(i, end=" ")
flag = True
if not flag:
print() # 输出空行
### 回答2:
思路:
1. 判断输入的n是否在有效范围内,若不在则输出 "invalid."
2. 将输入的n个整数存入数组a中
3. 计算这些数的平均值
4. 找出所有大于平均值的数并输出
代码实现:
```python
# 输入n和n个整数
n = int(input())
if n < 1 or n > 10:
print("invalid.")
else:
a = list(map(int, input().split()))
# 计算平均值
avg = sum(a) / n
print("{:.2f}".format(avg)) # 保留两位小数并输出
# 找出所有大于平均值的数并输出
res = []
for i in a:
if i > avg:
res.append(i)
if res:
print(" ".join(map(str, res)))
else:
print()
```
注解:
1. 判断输入的n是否在有效范围内:如果n小于1或大于10,则输出 "invalid." 退出程序。
2. 将输入的n个整数存入数组a中:使用 `list(map(int, input().split()))` 将输入的一行整数分割成多个整数,并将其存储在列表中。
3. 计算平均值:使用 `sum(a) / n` 计算列表a中所有整数的和并除以n得到平均值。
4. 找出所有大于平均值的数并输出:使用一个列表res来保存所有大于平均值的数,使用 `for` 循环遍历列表a中的每一个元素,判断它是否大于平均值,若是,则将其添加到列表res中。如果列表res不为空,则使用 `join` 方法将每一个元素转化为字符串并用空格连接成一个字符串输出;若列表res为空,则输出一个空行(即两个换行符)。
### 回答3:
思路:
1. 输入n
2. 判断n是否合法(如果n不在1-10的范围内,输出"invalid.")
3. 使用循环输入n个整数,保存到数组中
4. 求平均值并输出
5. 遍历数组,输出大于平均值的数,如果没有满足条件的数则输出空行
具体实现见下:
```python
n = int(input()) # 输入n
if n < 1 or n > 10: # 判断n是否合法
print("invalid.")
else:
a = list(map(int, input().split())) # 输入n个整数并保存到数组a中
total = sum(a)
avg = total / n
print("{:.2f}".format(avg)) # 输出平均值
count = 0 # 记录大于平均值的数的数量
for num in a:
if num > avg:
count += 1
print(num, end=' ')
if count == 0:
print() # 如果没有满足条件的数则输出空行
```
样例输入1:
```
5
1 2 3 4 5
```
样例输出1:
```
3.00
4 5
```
样例输入2:
```
11
1 2 3 4 5 6 7 8 9 10 11
```
样例输出2:
```
invalid.
```
阅读全文