1、编写函数利用形参指针返回 10 个整数的最大值、最小值和平均值。 函数声明如下: void find(int*a,int n, int*max, int*min, int*aver);
时间: 2024-12-16 18:16:20 浏览: 11
在这个函数中,你需要遍历传入的整型数组,同时计算最大值、最小值和累加求平均值。以下是函数的实现:
```cpp
#include <iostream>
// 计算单个元素与已知最大值和最小值的关系
void updateMinMax(int num, int* max, int* min) {
if (*min > num) {
*min = num;
}
if (*max < num) {
*max = num;
}
}
// 计算平均值并更新累加和
void accumulateAverage(int num, int sum, int count, int* aver) {
sum += num;
count++;
*aver = sum / count;
}
// 主函数:find
void find(int* a, int n, int* max, int* min, int* aver) {
*max = a[0]; // 初始最大值设为第一个元素
*min = a[0]; // 初始最小值设为第一个元素
int sum = 0; // 初始化总和
int count = 1; // 初始化元素计数
for (int i = 1; i < n; i++) {
updateMinMax(a[i], max, min);
accumulateAverage(a[i], sum, count, aver);
}
}
int main() {
int numbers[10] = {5, 2, 8, 1, 9, 4, 7, 6, 3, 0};
int* maxValue = new int;
int* minValue = new int;
int* averageValue = new int;
find(numbers, sizeof(numbers) / sizeof(numbers[0]), maxValue, minValue, averageValue);
std::cout << "Max value: " << *maxValue << ", Min value: " << *minValue << ", Average value: " << *averageValue << std::endl;
delete maxValue;
delete minValue;
delete averageValue;
return 0;
}
```
阅读全文