c++
时间: 2023-07-01 19:19:15 浏览: 40
好的,以下是使用函数模板求解的示例代码:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
template<typename T>
void getMinMax(T arr[], int n, T& minVal, T& maxVal) {
minVal = maxVal = arr[0];
for (int i = 1; i < n; i++) {
minVal = min(minVal, arr[i]);
maxVal = max(maxVal, arr[i]);
}
}
int main() {
int n = 3;
while (n--) {
int intArr[100];
float floatArr[100];
char charArr[100];
// 读入数据
for (int i = 0; i < 3; i++) {
cin >> intArr[i];
}
for (int i = 0; i < 3; i++) {
cin >> floatArr[i];
}
for (int i = 0; i < 3; i++) {
cin >> charArr[i];
}
// 求解并输出最大值和最小值
int intMin, intMax;
getMinMax(intArr, 3, intMin, intMax);
cout << intMax << ' ' << intMin << endl;
float floatMin, floatMax;
getMinMax(floatArr, 3, floatMin, floatMax);
cout << floatMax << ' ' << floatMin << endl;
char charMin, charMax;
getMinMax(charArr, 3, charMin, charMax);
cout << int(charMax) << ' ' << int(charMin) << endl; // 输出 ASCII 码
}
return 0;
}
```
这里使用了一个 `getMinMax` 函数模板,通过传入不同类型的数组和数组长度,可以分别求出最大值和最小值,并且支持整型、浮点型和字符型。在主函数中,读入每组数据后,分别调用 `getMinMax` 函数模板求解最大值和最小值,并输出。需要注意的是,对于字符型,我们需要将其转换为对应的 ASCII 码再输出。