解题思路:
本题要求使用重载的方法来对三组不同数据类型的输入用同一个函数名进行处理后输出相应的结果,本人提供两种语言的解法供大家参考。
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 人评分
1065浏览:874 |
C语言程序设计教程(第三版)课后习题5.5 (C++代码)浏览:662 |
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:807 |
C二级辅导-计负均正 (C语言代码)浏览:643 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:590 |
永远的丰碑 (C语言代码)浏览:698 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:466 |
C语言程序设计教程(第三版)课后习题1.5 (C++代码)浏览:778 |
上车人数 (C语言代码)浏览:816 |
C语言训练-列出最简真分数序列* (C语言代码)浏览:658 |