输入 a、b、c的值,编写一个程序求这三个数的最大值和最小值。要求:把求最大值和最小值操作分别编写成一个函数,并使用函数指针方式去调用最小值和最大值函数。
时间: 2024-09-26 07:13:47 浏览: 40
c代码-输入三个数实数a、b、c,按从大到小输出,并输出最大值和最小值。
在许多编程语言中,你可以通过创建函数指针来实现这个需求。这里是一个简单的例子,假设我们使用C++编写:
```cpp
#include <iostream>
// 定义两个函数模板,用于获取最大值和最小值
template<typename T>
T findMax(T a, T b) {
return a > b ? a : b;
}
template<typename T>
T findMin(T a, T b) {
return a < b ? a : b;
}
// 函数指针类型声明
using MaxFunc = std::function<T(T, T)>; // 最大值函数指针
using MinFunc = std::function<T(T, T)>; // 最小值函数指针
int main() {
int a, b, c;
std::cout << "Enter three numbers: ";
std::cin >> a >> b >> c;
// 创建并赋值函数指针
MaxFunc maxPtr = &findMax<int>; // 调用findMax并将其地址传给maxPtr
MinFunc minPtr = &findMin<int>;
// 使用函数指针计算最大值和最小值
int max = (*maxPtr)(a, b);
max = (*maxPtr)(max, c); // 因为函数可以接收任意类型的参数,所以这里不需要再次比较
int min = (*minPtr)(a, b);
min = (*minPtr)(min, c);
std::cout << "The maximum value is: " << max << std::endl;
std::cout << "The minimum value is: " << min << std::endl;
return 0;
}
```
在这个程序里,`findMax` 和 `findMin` 是模板函数,可以处理任意类型的参数。然后我们定义了函数指针 `MaxFunc` 和 `MinFunc` 来指向这两个函数。在主函数中,我们创建了函数指针的实例并分别调用它们。
阅读全文