求输入的十个整数中正数的个数及其平均值
时间: 2024-10-22 16:29:38 浏览: 67
要解决这个问题,我们需要编写一个C语言程序来读取十个整数,并计算其中正数的个数及其平均值。以下是详细的解析过程和代码实现:
### 步骤1:定义变量
我们需要一些变量来存储输入的整数、正数的个数以及正数的总和。
```c
#include <stdio.h>
int main() {
int numbers[10]; // 存储输入的十个整数
int positive_count = 0; // 正数的个数
int positive_sum = 0; // 正数的总和
float average; // 正数的平均值
```
### 步骤2:获取用户输入
通过循环让用户输入十个整数,并检查每个整数是否为正数。如果是正数,则更新正数的个数和总和。
```c
for (int i = 0; i < 10; i++) {
printf("请输入第%d个整数: ", i + 1);
scanf("%d", &numbers[i]);
if (numbers[i] > 0) {
positive_count++;
positive_sum += numbers[i];
}
}
```
### 步骤3:计算正数的平均值
如果正数的个数大于零,则计算正数的平均值。否则,输出提示信息。
```c
if (positive_count > 0) {
average = (float)positive_sum / positive_count;
printf("正数的个数: %d\n", positive_count);
printf("正数的平均值: %.2f\n", average);
} else {
printf("没有正数。\n");
}
return 0;
}
```
### 完整代码
将上述步骤整合在一起,得到完整的C语言程序:
```c
#include <stdio.h>
int main() {
int numbers[10]; // 存储输入的十个整数
int positive_count = 0; // 正数的个数
int positive_sum = 0; // 正数的总和
float average; // 正数的平均值
for (int i = 0; i < 10; i++) {
printf("请输入第%d个整数: ", i + 1);
scanf("%d", &numbers[i]);
if (numbers[i] > 0) {
positive_count++;
positive_sum += numbers[i];
}
}
if (positive_count > 0) {
average = (float)positive_sum / positive_count;
printf("正数的个数: %d\n", positive_count);
printf("正数的平均值: %.2f\n", average);
} else {
printf("没有正数。\n");
}
return 0;
}
```
### 相关问题
1. 如何修改程序以处理负数的统计和平均值计算?
2. 如果输入的整数超过十个,程序应该如何处理?
3. 如何改进程序以处理浮点数(小数)的输入?
4. 如何添加错误检查以确保用户输入的是有效的整数?
阅读全文