编写程序,实现如下任务:从键盘输入若干个整数,输入整数的个数小于 100,其值在-100~100 范围内,用-1作为输入结束的标志。统计每个整数的个数 并从大到小排序,输出排序后的结果。例如: 提示:定义两个数组,一个用来存放输入整数,另一个用来存放统计信息
时间: 2024-12-18 22:18:20 浏览: 11
在编写这样的程序时,我们可以使用循环结构来逐个接收用户的输入,并对每个输入进行处理。以下是使用 Python 语言的一个简单实现:
```python
def input_and_sort():
num_counts = [0] * 210 # 创建一个长度为210(-100 到 100 包含两端)的数组存储计数
numbers = []
while True:
user_input = int(input("请输入一个整数 (-1 结束): "))
if user_input == -1:
break
if -100 <= user_input <= 100:
num_counts[user_input + 100] += 1 # 将输入加100是因为数组下标从0开始,我们需要将范围内的数映射到数组
numbers.append(user_input)
else:
print("输入超出范围,已忽略.")
sorted_counts = num_counts[num_counts != 0] # 只保留非零计数值并排序
sorted_counts.sort(reverse=True) # 从大到小排序
print("按次数从大到小的整数分布:")
for i, count in enumerate(sorted_counts):
print(f"{i+100} 出现了 {count} 次")
# 调用函数开始程序
input_and_sort()
```
在这个程序中,我们首先创建了一个大小为210的数组`num_counts`用于统计每个数出现的次数。接着,我们在`while`循环中持续询问用户输入,当输入`-1`时跳出循环。如果输入的数在指定范围内,我们就更新对应位置的计数并将其添加到`numbers`列表中。最后,我们将`num_counts`中非零元素提取出来,按照计数降序排序,并打印出结果。
阅读全文