编程:键盘输入10个数(可能为整形、浮点 型、双精度型及其字符类型),用函数模板,求出其中的最大值和最小 值。
时间: 2023-05-12 16:07:49 浏览: 80
由键盘任意输入10个整型数,找出其中的最大值,如果多个最大值记录最后一个位置。
好的,以下是求解最大值和最小值的函数模板代码:
```
#include <iostream>
#include <algorithm>
using namespace std;
template<typename T>
void findMinMax(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() {
const int n = 10;
int intArr[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
float floatArr[n] = {1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9, 10.0};
double doubleArr[n] = {1.111, 2.222, 3.333, 4.444, 5.555, 6.666, 7.777, 8.888, 9.999, 10.000};
char charArr[n] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'};
int intMin, intMax;
findMinMax(intArr, n, intMin, intMax);
cout << "Int array min value: " << intMin << ", max value: " << intMax << endl;
float floatMin, floatMax;
findMinMax(floatArr, n, floatMin, floatMax);
cout << "Float array min value: " << floatMin << ", max value: " << floatMax << endl;
double doubleMin, doubleMax;
findMinMax(doubleArr, n, doubleMin, doubleMax);
cout << "Double array min value: " << doubleMin << ", max value: " << doubleMax << endl;
char charMin, charMax;
findMinMax(charArr, n, charMin, charMax);
cout << "Char array min value: " << charMin << ", max value: " << charMax << endl;
return 0;
}
```
这个函数模板可以接受任何类型的数组作为输入,并返回其中的最大值和最小值。
阅读全文