用c语言编写程序,由键盘输入20个整数,统计其中的正整数、负整数、0分别有多少个?并分别计算其中的正整数、负整数之和以及各自的平均值(结果为浮点型,输出时保留2位小数)。
时间: 2024-10-21 07:17:12 浏览: 42
你可以使用C语言的数组和循环结构来完成这个任务。首先从键盘读取20个整数,然后通过条件判断来区分它们是正数、负数还是零。以下是详细的步骤:
```c
#include <stdio.h>
#include <math.h> // 引入math库以便使用浮点数的round函数
int main() {
int numbers[20];
int count_pos = 0, count_neg = 0, count_zero = 0;
float sum_pos = 0.0, sum_neg = 0.0;
// 读取20个整数
for (int i = 0; i < 20; i++) {
scanf("%d", &numbers[i]);
if (numbers[i] > 0) { // 正整数
count_pos++;
sum_pos += numbers[i];
} else if (numbers[i] < 0) { // 负整数
count_neg++;
sum_neg += numbers[i];
} else { // 零
count_zero++;
}
}
// 计算平均值并四舍五入到两位小数
float avg_pos = round(sum_pos / count_pos * 100) / 100.0;
float avg_neg = round(sum_neg / count_neg * 100) / 100.0;
printf("正整数个数:%d,和:%f,平均值:%.2f\n", count_pos, sum_pos, avg_pos);
printf("负整数个数:%d,和:%f,平均值:%.2f\n", count_neg, sum_neg, avg_neg);
return 0;
}
```
注意,由于浮点数的精度问题,我们使用`round`函数来四舍五入平均值到两位小数。
阅读全文