从键盘输入任意20个整型数,统计其中的负数个数并求所有正数的平均值。 保留两位小数
时间: 2023-06-18 18:07:58 浏览: 115
好的,以下是 Python 代码实现:
```python
nums = input("请输入20个整数,用空格分隔:")
nums = list(map(int, nums.split())) # 将输入的字符串转换为整数列表
neg_count = 0 # 负数个数
pos_sum = 0 # 正数总和
pos_count = 0 # 正数个数
for num in nums:
if num < 0:
neg_count += 1
elif num > 0:
pos_sum += num
pos_count += 1
pos_avg = pos_sum / pos_count if pos_count > 0 else 0 # 计算正数平均值
print("负数个数:", neg_count)
print("正数平均值:", "%.2f" % pos_avg)
```
这段代码首先通过 `input` 函数获取用户输入的20个整数,然后使用 `split` 方法将输入的字符串按空格分隔成整数列表。接着遍历整数列表,统计负数个数和计算正数的总和及个数,最后计算正数的平均值并输出。其中,输出正数平均值时使用了字符串格式化(`"%.2f" % pos_avg`),保留小数点后两位。
相关问题
从键盘输入任意20个整型数,统计其中的负数个数并求所有正数的平均值。 保留两位小数
为了实现这个功能,你需要首先读取用户输入的20个整数,然后检查每个数是否为负数,最后计算正数的总和并除以正数的数量得到平均值。以下是使用C语言的一个简单实现:
```c
#include <stdio.h>
#include <float.h> // 包含浮点数处理函数
int main() {
int numbers[20];
int count_negative = 0, sum_positive = 0;
printf("请输入20个整数:\n");
for (int i = 0; i < 20; i++) {
scanf("%d", &numbers[i]);
if (numbers[i] < 0) { // 检查是否为负数
count_negative++;
} else if (numbers[i] > 0) { // 只对正数累加
sum_positive += numbers[i];
}
}
if (count_negative == 0) { // 避免除以零的情况
printf("没有正数。\n");
} else {
float average = (float)sum_positive / count_positive;
printf("负数有 %d 个,正数的平均值为 %.2f。\n", count_negative, average);
}
return 0;
}
```
这段代码首先声明了一个数组存储20个整数,接着通过循环读取用户的输入。如果是负数则计数,如果是正数则累加。最后计算平均值并保留两位小数显示结果。
从键盘输入任意20个整型数,统计其中的负数个数并求所有正数的平均值。 保留两位小数C语言
下面是C语言代码实现:
```c
#include <stdio.h>
int main() {
int nums[20];
int neg_count = 0;
int pos_count = 0;
int pos_sum = 0;
double pos_avg = 0.0;
// 输入20个整数
printf("请输入20个整数:\n");
for (int i = 0; i < 20; i++) {
scanf("%d", &nums[i]);
if (nums[i] < 0) {
neg_count++;
} else {
pos_count++;
pos_sum += nums[i];
}
}
// 计算正数平均值
if (pos_count > 0) {
pos_avg = (double)pos_sum / pos_count;
}
// 输出结果
printf("负数个数:%d\n", neg_count);
printf("正数平均值:%.2f\n", pos_avg);
return 0;
}
```
输入20个整数后,程序会统计负数个数并计算所有正数的平均值,并输出结果。注意要使用`%d`格式符读取整数,使用`%f`格式符输出浮点数,并且要使用`double`类型来存储平均值以保证精度。`%.2f`表示输出两位小数。
阅读全文