请你写5个用来求最大值的Max函数,分别可以用来求两个int整数、float浮点数、double浮点数、char字符以及C++string字符串的最大值,该函数仍然返回和输入相同类型的数据。
时间: 2024-05-24 19:11:13 浏览: 88
我理解了您的要求,请看下面的代码示例:
1. 求两个 int 整数的最大值:
int max(int a, int b) {
return (a > b) ? a : b;
}
2. 求两个 float 浮点数的最大值:
float max(float a, float b) {
return (a > b) ? a : b;
}
3. 求两个 double 浮点数的最大值:
double max(double a, double b) {
return (a > b) ? a : b;
}
4. 求两个 char 字符的最大值:
char max(char a, char b) {
return (a > b) ? a : b;
}
5. 求两个 C string 字符串的最大值:
char* max(char* a, char* b) {
return (strcmp(a, b) > 0) ? a : b;
}
注意:这里的 C string 字符串是指以 '\0' 结尾的字符数组,为了方便比较字符串大小,这里使用了 C++ 标准库提供的 strcmp 函数,也可以使用自己实现的字符串比较函数。
相关问题
C++编程:键盘输入10个数(可能为整形、浮点 型、双精度型及其字符类型),分别利用函数 重载和函数模板,求出其中的最大值和最小 值。
好的,这是一个关于 C 编程的问题。以下是使用函数重载和函数模板求出输入的十个数中最大值和最小值的示例代码:
```c++
#include <iostream>
using namespace std;
template <typename T>
T findMax(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 findMin(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() {
int n = 10;
int arr1[n];
float arr2[n];
double arr3[n];
char arr4[n];
cout << "请输入十个整数:" << endl;
for (int i = 0; i < n; i++) {
cin >> arr1[i];
}
cout << "最大值为:" << findMax(arr1, n) << endl;
cout << "最小值为:" << findMin(arr1, n) << endl;
cout << "请输入十个浮点数:" << endl;
for (int i = 0; i < n; i++) {
cin >> arr2[i];
}
cout << "最大值为:" << findMax(arr2, n) << endl;
cout << "最小值为:" << findMin(arr2, n) << endl;
cout << "请输入十个双精度数:" << endl;
for (int i = 0; i < n; i++) {
cin >> arr3[i];
}
cout << "最大值为:" << findMax(arr3, n) << endl;
cout << "最小值为:" << findMin(arr3, n) << endl;
cout << "请输入十个字符:" << endl;
for (int i = 0; i < n; i++) {
cin >> arr4[i];
}
cout << "最大值为:" << findMax(arr4, n) << endl;
cout << "最小值为:" << findMin(arr4, n) << endl;
return 0;
}
```
希望这个示例代码能够帮助你解决问题。
键盘输入10个数(可能为整形、浮点型、双精度型及其字符类型),分别利用函数重载和函数模板,求出其中的最大值和最小值。
函数重载版本:
```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;
}
```
阅读全文