8,程序设计,输入20个整数,统计其中非负数的个数,并计算它们的和,然后将非负数从小到大进行排序并输出。
时间: 2024-05-13 12:19:21 浏览: 11
以下是Python语言的实现代码:
```python
nums = []
for i in range(20):
num = int(input("请输入第{}个整数:".format(i+1)))
nums.append(num)
positive_nums = [num for num in nums if num >= 0]
count = len(positive_nums)
total = sum(positive_nums)
sorted_nums = sorted(positive_nums)
print("非负数个数为:", count)
print("非负数的和为:", total)
print("排序后的非负数为:", sorted_nums)
```
以上程序首先定义了一个空列表`nums`,并通过循环输入20个整数,并将它们添加到列表中。然后通过列表推导式筛选出非负数,并分别统计其个数和总和。最后使用Python内置的`sorted`函数对非负数列表进行排序,并输出结果。
相关问题
C++程序设计,输入20个整数,统计其中非负数的个数,并计算它们的和,然后将非负数从小到大排序并输出
好的,让我来回答你的问题。
针对你的需求,下面是一个简单的 C 语言程序,实现输入20个整数,统计非负数的个数,并计算它们的和,然后把非负数从小到大排序输出。
```c
#include <stdio.h>
int main()
{
int nums[20], i, j, count = 0, sum = 0;
printf ("请输入20个整数:\n");
for (i = 0; i < 20; i++)
{
scanf("%d", &nums[i]);
if (nums[i] >= 0) // 统计非负数个数和它们的和
{
count++;
sum += nums[i];
}
}
// 使用冒泡算法对非负数排序
for(i=0;i<count-1;i++)
{
for(j=0;j<count-1-i;j++)
{
if(nums[j]>nums[j+1])
{
int temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
printf("\n非负数个数:%d\n它们的和:%d\n从小到大排序后的非负数:\n", count, sum);
// 输出排序后的非负数
for (i = 0; i < count; i++)
{
printf("%d ", nums[i]);
}
return 0;
}
```
希望可以帮助到你!
8.程序设计,输入20个整数,统计其中非负数的个数,并计算它们的和,然后将非负数从小到大进行排序并输出。
下面是一个 Python 代码实现:
```python
nums = []
positive_nums = []
for i in range(20):
num = int(input("请输入一个整数:"))
nums.append(num)
if num >= 0:
positive_nums.append(num)
positive_nums_count = len(positive_nums)
positive_nums_sum = sum(positive_nums)
positive_nums.sort()
print("非负数的个数为:", positive_nums_count)
print("非负数的和为:", positive_nums_sum)
print("非负数从小到大的排序结果为:", positive_nums)
```
这个程序先创建了一个空列表 `nums`,然后用一个循环读入 20 个整数并把它们添加到这个列表中。同时,如果输入的数为非负数,就把它添加到另一个列表 `positive_nums` 中。
接着,程序用 Python 内置的 `len` 和 `sum` 函数计算出非负数的个数和它们的和。然后,使用列表的 `sort` 方法对 `positive_nums` 列表进行排序,最后输出统计结果。
需要注意的是,上面的代码没有对输入的数进行范围限制,如果需要,可以加入相应的判断逻辑。