Think:
1、学习理解:
(1):若在定义时而不是在声明时置默认值,那么函数定义一定要在函数的调用之前
(2):不能将实际值传递给引用类型的参数。可以将变量作引用类型参数的默认值,这时变量必须是已经声明且是全局变量。
(3):若给某一参数设置了默认值,那么在参数表中其后所有的参数都必须也设置默认值,否则,由于函数调用时可不列出已设置默认值的参数,编译器无法判断在调用时是否有参数遗漏。
(4):在调用时,若给已经设置默认值的参数传递实际值,既要取代默认值,则在参数表中被取代参数的左边所定义的所有参数,无论是否有默认值,都必须传递实际参数。
(5):声明时置默认参数,定义时不必置默认参数
参考博客1链接
参考博客2链接
SDUT:面向对象程序设计上机练习三(有默认参数的函数)
Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic
Problem Description
利用默认参数的函数实现求2个或3个整数的最大值。
Input
输入3个int型整数。
Output
输出第1、2个整数及其最大值;
输出第1、2、3个整数及其最大值。
Example Input
88 66 99
Example Output
88 66 88
88 66 99 99
Hint
Author
zlh
以下为Accepted代码
#include <iostream>
using namespace std;
const int inf = 0x3f3f3f3f;
void Max_pri(int a, int b, int c = -inf);
int main(){
int a, b, c;
while(cin >> a >> b >> c){
cout << a << ' ' << b << ' ';
Max_pri(a, b);
cout << a << ' ' << b << ' ' << c << ' ';
Max_pri(a, b, c);
}
return 0;
}
void Max_pri(int a, int b, int c/* = -inf*/){
int t = a;
if(t < b) t = b;
if(t < c) t = c;
cout << t << endl;
}