解题思路:
本题要求使用重载的方法来对三组不同数据类型的输入用同一个函数名进行处理后输出相应的结果,本人提供两种语言的解法供大家参考。
C++字符串的比较可以使用string类,比数组指针神马的好用的多,在使用方法上,它和int,char类型一样,可以用来定义变量和函数,但是string并不是C++语言本身具有的基本类型,只是在c++标准库中声明的一个字符串类,用这种类可以定义对象,每一个字符串都是string类型的一个对象,然后可以在比较函数中直接计算大的字符减去小的字符的差值,然后返回后转成整型,即可得到差的绝对值
由于Python由于其没有定义数据类型变量这一说,所以不太依赖重载这个东西,而且python没有char型数据,统一为str类型,因此在第二步没有使用函数而是将字符类型转换ASCII码时使用了ord()函数来做,然后用abs()函数来求两个数的绝对值,两种方法均可以AC。
本人初学python,不足之处还请指教!
注意事项:
参考代码:
//C++
#include<iostream>
#include<string>
using namespace std;
int Compare(int a, int b);
char Compare(char a, char b);
string Compare(string str1, string str2);
int main()
{
int a, b, c, d;
char m, n;
string str1, str2;
cin >> a >> b;
cin >> m >> n;
cin >> str1 >> str2;
cout<<Compare(a, b)<<endl;
cout<<(int)Compare(m, n)<<endl;
cout << Compare(str1, str2) << endl;
return 0;
}
int Compare(int a, int b)
{
if (a > b)
return a;
else
return b;
}
char Compare(char a, char b)
{
if (a > b)
return a-b;
else
return b-a;
}
string Compare(string str1, string str2)
{
if (str1 > str2)
return str1;
else
return str2;
}
#python
def Compare(a,b):
if a > b:
return a
else:
return b
a,b = map(int,input().strip().split())
c,d = map(str,input().strip().split())
result = abs(ord(c)-ord(d))
e,f = map(str,input().strip().split())
print(Compare(a,b))
print(result)
print(Compare(e,f))
0.0分
3 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复