定义两个各包含10个元素的数组(元素数据类型分别是float和int型),通过定义重载函数实现: (1) 计算该数组的平均值; (2) 求出该数组的最大值和最小值。 用c++解答该题
时间: 2025-01-05 18:38:50 浏览: 8
在C++中,你可以定义两个模板函数,分别针对浮点数(float)和整数(int)类型的数组,来实现这两个功能。以下是具体的代码示例:
```cpp
#include <iostream>
#include <climits> // 包含INT_MAX和FLT_MIN用于获取整数和浮点数的最大最小值
template<typename T>
T calculateAverage(T arr[], int size) {
float sum = 0;
for (int i = 0; i < size; i++) {
sum += static_cast<float>(arr[i]);
}
return sum / size;
}
template<typename T>
std::pair<T, T> findMinMax(T arr[], int size) {
T min_val = std::numeric_limits<T>::max();
T max_val = std::numeric_limits<T>::min();
for (int i = 0; i < size; i++) {
if (arr[i] < min_val) {
min_val = arr[i];
}
if (arr[i] > max_val) {
max_val = arr[i];
}
}
return {min_val, max_val};
}
int main() {
float floatArray[10] = {1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9, 10.0};
int intArray[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
float avgFloat = calculateAverage<float>(floatArray, 10);
std::cout << "Float array average: " << avgFloat << std::endl;
std::pair<float, float> floatMinMax = findMinMax<float>(floatArray, 10);
std::cout << "Float array min-max: Min=" << floatMinMax.first << ", Max=" << floatMinMax.second << std::endl;
float avgInt = calculateAverage<int>(intArray, 10);
std::cout << "Integer array average: " << avgInt << std::endl;
std::pair<int, int> intMinMax = findMinMax<int>(intArray, 10);
std::cout << "Integer array min-max: Min=" << intMinMax.first << ", Max=" << intMinMax.second << std::endl;
return 0;
}
```
阅读全文