最小值的引用
题目描述
补全返回最小值引用的函数minRef,使程序能计算输入整数中的最大值。
关于输入
5个正整数
关于输出
最大值
核心技巧
- 返回引用的函数,返回值类型前面加上&符号
- 引用绑定的值不能是临时值,因此参数也应通过引用传递
设计思想
- 对于最终的两个值,将较小值赋值为
INT_MAX
,就可以使下次取得的较小值是最终的最大值 - 以较小的效率为代价实现了最大值最小值接口统一,是一种有趣的设计思想。许多语言用相同的方法完成比较,只需
<
和==
即可实现全部六种比较方式。
注意
INT_MAX
是 C++ 中的一个宏,在 <climits>
中定义,表示整数的最大值,你无需定义。
参考答案
#include <iostream>
#include <climits>
using std::cin, std::cout, std::endl;
// minRef
int& minRef(int& a, int& b) {
return a < b ? a : b;
}
int main() {
int a = 0, b = 0;
for (int i = 0; i < 5; i++) {
cin >> minRef(a, b);
}
minRef(a, b) = INT_MAX;
cout << minRef(a, b) << endl;
}