定义数组int a[10],输入任意10个整数(测试数据确保正负都有), 求出其正数元素和负数元素当中各自的最大值、最小值和平均值,并输出结果。c++
时间: 2024-12-12 19:22:50 浏览: 25
在 C++ 中,你可以使用一个循环遍历数组来找到正数和负数的最大值、最小值以及计算它们的平均值。这里是一个简单的示例程序:
```cpp
#include <iostream>
using namespace std;
void processArray(int arr[], int size) {
int positiveSum = 0, negativeSum = 0;
int positiveMax = INT_MIN, negativeMax = INT_MAX;
int positiveMin = INT_MAX, negativeMin = INT_MIN;
for (int i = 0; i < size; i++) {
if (arr[i] > 0) {
positiveSum += arr[i];
positiveMax = max(positiveMax, arr[i]);
positiveMin = min(positiveMin, arr[i]);
}
else if (arr[i] < 0) {
negativeSum += arr[i];
negativeMax = max(negativeMax, arr[i]);
negativeMin = min(negativeMin, arr[i]);
}
}
// 计算平均值
double positiveAverage = static_cast<double>(positiveSum) / (size - positiveSum == 0 ? 1 : positiveSum);
double negativeAverage = static_cast<double>(negativeSum) / (size - negativeSum == 0 ? 1 : negativeSum);
cout << "Positive Max: " << positiveMax << ", Min: " << positiveMin << ", Average: " << positiveAverage << endl;
cout << "Negative Max: " << negativeMax << ", Min: " << negativeMin << ", Average: " << negativeAverage << endl;
}
int main() {
int a[10]; // 假设用户已经输入了10个整数
// ... 实际上你需要在这里获取用户的输入
processArray(a, sizeof(a) / sizeof(a[0]));
return 0;
}
```
这个程序首先初始化变量用于存储正数和负数的和、最大值和最小值。然后遍历数组,如果元素是正数,则增加正数总和并更新最大值和最小值;如果是负数,则做类似操作。最后计算平均值并打印结果。
注意,在处理平均值时,我们检查了除数是否为零(即数组里全为正数或负数),以防出现除以零的情况。此外,`INT_MIN` 和 `INT_MAX` 分别表示整数类型的最小和最大值,用于初始比较。
阅读全文