键盘输入10个数(可能为整形、浮点型、双精度型及其字符类型),分别利用函数重载和函数模板,求出其中的最大值和最小值。
时间: 2023-05-29 17:04:06 浏览: 37
函数重载版本:
```C++
#include <iostream>
using namespace std;
int getMax(int arr[], int n) {
int max = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
float getMax(float arr[], int n) {
float max = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
double getMax(double arr[], int n) {
double max = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
char getMax(char arr[], int n) {
char max = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
int getMin(int arr[], int n) {
int min = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
float getMin(float arr[], int n) {
float min = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
double getMin(double arr[], int n) {
double min = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
char getMin(char arr[], int n) {
char min = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
int main() {
const int N = 10;
int arr1[N];
float arr2[N];
double arr3[N];
char arr4[N];
cout << "请输入" << N << "个整数:" << endl;
for (int i = 0; i < N; i++) {
cin >> arr1[i];
}
cout << "最大值为:" << getMax(arr1, N) << endl;
cout << "最小值为:" << getMin(arr1, N) << endl;
cout << "请输入" << N << "个浮点数:" << endl;
for (int i = 0; i < N; i++) {
cin >> arr2[i];
}
cout << "最大值为:" << getMax(arr2, N) << endl;
cout << "最小值为:" << getMin(arr2, N) << endl;
cout << "请输入" << N << "个双精度数:" << endl;
for (int i = 0; i < N; i++) {
cin >> arr3[i];
}
cout << "最大值为:" << getMax(arr3, N) << endl;
cout << "最小值为:" << getMin(arr3, N) << endl;
cout << "请输入" << N << "个字符:" << endl;
for (int i = 0; i < N; i++) {
cin >> arr4[i];
}
cout << "最大值为:" << getMax(arr4, N) << endl;
cout << "最小值为:" << getMin(arr4, N) << endl;
return 0;
}
```
函数模板版本:
```C++
#include <iostream>
using namespace std;
template <typename T>
T getMax(T arr[], int n) {
T max = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
template <typename T>
T getMin(T arr[], int n) {
T min = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
int main() {
const int N = 10;
int arr1[N];
float arr2[N];
double arr3[N];
char arr4[N];
cout << "请输入" << N << "个整数:" << endl;
for (int i = 0; i < N; i++) {
cin >> arr1[i];
}
cout << "最大值为:" << getMax(arr1, N) << endl;
cout << "最小值为:" << getMin(arr1, N) << endl;
cout << "请输入" << N << "个浮点数:" << endl;
for (int i = 0; i < N; i++) {
cin >> arr2[i];
}
cout << "最大值为:" << getMax(arr2, N) << endl;
cout << "最小值为:" << getMin(arr2, N) << endl;
cout << "请输入" << N << "个双精度数:" << endl;
for (int i = 0; i < N; i++) {
cin >> arr3[i];
}
cout << "最大值为:" << getMax(arr3, N) << endl;
cout << "最小值为:" << getMin(arr3, N) << endl;
cout << "请输入" << N << "个字符:" << endl;
for (int i = 0; i < N; i++) {
cin >> arr4[i];
}
cout << "最大值为:" << getMax(arr4, N) << endl;
cout << "最小值为:" << getMin(arr4, N) << endl;
return 0;
}
```