c语言8.程序设计,输入20个整数,统计其中非负数的个数,并计算它们的和,然后将非负数从小到大进行排序并输出。
时间: 2023-06-14 15:02:37 浏览: 81
C语言练习——统计非负数个数,并计算非负数之和.c
下面是一个简单的C语言程序来实现这个功能:
```c
#include<stdio.h>
#define MAXSIZE 20
int main()
{
int num[MAXSIZE], positive[MAXSIZE];
int count = 0, sum = 0, i, j, temp;
printf("请输入20个整数:\n");
for(i = 0; i < MAXSIZE; i++)
{
scanf("%d", &num[i]);
if(num[i] >= 0) // 判断是否为非负数
{
positive[count++] = num[i]; // 将非负数加入数组positive
sum += num[i]; // 统计非负数的和
}
}
// 冒泡排序,将非负数从小到大排序
for(i = 0; i < count - 1; i++)
for(j = 0; j < count - i - 1; j++)
if(positive[j] > positive[j+1])
{
temp = positive[j];
positive[j] = positive[j+1];
positive[j+1] = temp;
}
printf("非负数的个数为:%d,它们的和为:%d\n", count, sum);
printf("非负数从小到大排序后为:\n");
for(i = 0; i < count; i++)
printf("%d ", positive[i]);
return 0;
}
```
该程序首先定义了两个数组 `num` 和 `positive`, `num` 用于存储输入的20个整数, `positive` 用于存储非负数。然后通过一个循环,将输入的整数逐个存入 `num` 数组中,在存储的同时,对每个非负数进行统计并加入 `positive` 数组中。
接着,程序对 `positive` 数组进行冒泡排序,将其中的非负数从小到大排序。最后输出非负数的个数、它们的和以及排序后的结果。
阅读全文