6-7 最大值函数重载
分数 10
全屏浏览题目
切换布局
作者 杨军
单位 四川师范大学
编写重载函数myMax可分别求取两个整数,三个整数,两个双精度数的最大值。
函数接口定义:
裁判测试程序样例:
/* 请在这里填写答案 */ int main(){ cout<<myMax(3,4)<<endl; cout<<myMax(3,4,5)<<endl; cout<<myMax(4.3,3.4)<<endl; }
输入样例:
无
输出样例:
在这里给出相应的输出。例如:
1. 4 2. 5 3. 4.3
1. #include<bits/stdc++.h> 2. using namespace std; 3. int myMax(int x,int y) 4. { 5. return x>y?x:y; 6. } 7. int myMax(int x,int y,int z) 8. { 9. if(x>y) 10. { 11. if(x>z) 12. { 13. return x; 14. } 15. else 16. { 17. return z; 18. } 19. } 20. else 21. { 22. if(y>z) 23. { 24. return y; 25. } 26. else 27. { 28. return z; 29. } 30. } 31. } 32. double myMax(double x,double y) 33. { 34. return x>y?x:y; 35. }
6-8 函数重载实现两数相加
分数 15
全屏浏览题目
切换布局
作者 李廷元
单位 中国民用航空飞行学院
设计一个重载函数add,该函数有两个参数,可以实现两个类型相同的参数相加的操作,函数返回相加的结果。两个参数可以是整数、实数和字符串,但必须保证两个参数类型相同。
裁判测试程序样例:
#include <iostream> #include <string> #include <iomanip> using namespace std; /* 请在这里填写答案 */ int main() { int a, b; double c, d; string s1, s2; cin >> a >> b; cin >> c >> d; cin >> s1 >> s2; cout << add(a, b) << endl; cout << fixed << setprecision(2) << add(c, d) << endl; cout << add(s1, s2) << endl; return 0; }
输入样例:
1. 3 5 2. 3.3333 5.555555 3. hello world
输出样例:
1. 8 2. 8.89 3. helloworld
1. int add(int a,int b) 2. { 3. return a+b; 4. } 5. double add(double a,double b) 6. { 7. return a+b; 8. } 9. string add(string a,string b) 10. { 11. return a+b; 12. }
6-9 最大值(模板)*
分数 10
全屏浏览题目
切换布局
作者 李祥
单位 湖北经济学院
请设计求两个对象最大值的函数模板。
1. #include <iostream> 2. using namespace std; 3. 4. /* 你提交的代码将被嵌在这里 */ 5. 6. int main() 7. { 8. int a, b, c; 9. cin >> a >> b; 10. c = Max(a, b); 11. cout << c << endl; 12. return 0; 13. }
输入样例
37 29
输出样例
37
1. template<typename T, typename U> 2. inline auto Max(T const& x, U const& y) -> decltype(x > y ? x : y) 3. { 4. return x > y ? x : y; 5. }
6-10 绝对值函数模板*
分数 10
全屏浏览题目
切换布局
作者 李祥
单位 湖北经济学院
请设计求对象绝对值的函数模板。
1. #include <iostream> 2. using namespace std; 3. 4. /* 你提交的代码将被嵌在这里 */ 5. 6. int main() 7. { 8. int a, b; 9. cin >> a; 10. b = Abs(a); 11. cout << b << endl; 12. return 0; 13. }
输入样例1
37
输出样例1
37
输入样例2
-37
输出样例2
37
1. template<class T> 2. T Abs(T &x) 3. { 4. return x<0?-x:x; 5. }
6-11 求最大值函数模板
分数 10
全屏浏览题目
切换布局
作者 董卫萍
单位 绍兴文理学院元培学院
函数重载实现了让同名函数处理不同类型的数据,但最好的解决方法是类型参数化,这样就得到了函数模板。使用模板的目的就是能够让程序员编写与类型无关的代码。要求设计求两个或三个不同类型变量之最大值的函数模板,并在主函数中进行测试。
函数接口定义:
template<class T> T myMax(T a,T b); template<class T> T myMax(T a,T b,T c); T是抽象类型,可以由int,double,char,string类型实例化,两个函数模板也可以进行重载。
裁判测试程序样例:
#include <iostream> #include <string> using namespace std; /* 你提交的代码将被嵌在这里 */ int main() { int a, b, c; double s,t; string x,y; cin>>x>>y; cout << myMax(x,y) << endl; cin>>a>>b>>c; cout << myMax(a,b,c) << endl; cin>>s>> t; cout << myMax(s,t) << endl; cin>> a >> b; cout << myMax(a,b) << endl; return 0; }
输入样例:
在这里给出一组输入。例如:
1. hello world! 2. 12 3 45 3. 3.14 5.67 4. 120 -100
输出样例:
在这里给出相应的输出。例如:
1. world! 2. 45 3. 5.67 4. 120
1. template<class T> T myMax(T x,T y) 2. { 3. return x>y?x:y; 4. } 5. template<class T> T myMax(T x,T y,T z) 6. { 7. if(x>y) 8. { 9. if(x>z) 10. { 11. return x; 12. } 13. else 14. { 15. return z; 16. } 17. } 18. else 19. { 20. if(y>z) 21. { 22. return y; 23. } 24. else 25. { 26. return z; 27. } 28. } 29. }
6-12 myMax模板函数 - C/C++ 函数与抽象
分数 10
全屏浏览题目
切换布局
作者 海洋饼干叔叔
单位 重庆大学
请设计合适的模板函数myMax(),使得下述程序可以正确运行。myMax()函数比较并返回两个同类型形参对象中的较大者。
裁判测试程序样例:
#include <iostream> using namespace std; //在此处定义myMax模板函数 int main(){ cout << myMax(3,2) << endl; cout << myMax(string("hello"),string("howdy")) << endl; cout << myMax(3.2,0.5) << endl; cout << myMax(true,false) << endl; return 0; }
输入样例:
输出样例:
1. 3 2. howdy 3. 3.2 4. 1
请注意:函数题只需要提交相关函数的定义代码,不要提交完整程序。
1. template<class T> 2. T myMax(T a,T b) 3. { 4. return a>b?a:b; 5. }