C++程序设计 重载函数

编写4个重载函数,分别求整数和字符的最小值(10分)

题目

编写四个重载函数,函数求对应参数中的最小值并返回该值。

四个函数的原型是:

char min( char c1, char c2 );
char min( char c1, char c2, char c3 );
int min( int i1, int i2);
int min( int i1, int i2, int i3);

在主函数中定义一些变量并赋初值(使用C++11的auto或者列表初始化方法)

用第1个 min 函数比较字符 ‘[’ 和字符 ‘N’ 并输出较小的字符;

用第2个 min 函数比较字符 ‘G’ 、字符 ‘9’ 和字符 ‘*’ 并输出较小的字符;

用第3个 min 函数比较整数 -42 与 0 并输出较小的整数 (注意第一个整数是负值)

用第4个 min 函数比较整数 42 、0 和 std::numeric_limits::min() 并输出较小的整数

std::numeric_limits::min() 是C++系统头文件中的成员。所以你编写代码时需要包含这个头文件。

由于中国大学MOOC的OJ系统使用的是GCC4.7这个古老的编译器,因此,你不能在声明变量的时候同时使用auto和列表初始化,否则这个编译器会报告很多错误。

也就是,你不能写类似下面的代码:
auto x {1}, y{2}; cout << min(x, y);

emmm,我不管了,这份代码没过oj

输入格式:

输出格式:

用单个空格分隔开的4个数据

输入样例:

输出样例:

N * -42 -2147483648

注意:上述输出样例中,结尾没有空格,也没有换行符

注意:

在C++标准库头文件中,有一套 min()和max()函数。你在编程序时,不要包含该头文件,也不要使用

using namespace std;

这种会污染当前代码默认名字空间的语句

#include <iostream>
#include <limits>

char min(char c1,char c2);
char min(char c1,char c2,char c3);
int min(int i1,int i2);
int min(int i1,int i2,int i3);

int main()
{
    std::cout << min('[','N') << " "
              << min('G','9','*') << " "
              << min(-42,0) << " "
              << min(-42,0, std::numeric_limits<int>::min());
    return 0;
}
char min(char c1, char c2)
{
    return c1 > c2 ? c2 : c1;
}
char min(char c1,char c2,char c3)
{
    return c1 > min(c2,c3) ? min(c2,c3) : c1;
}
int min(int i1,int i2)
{
    return i1 > i2 ? i2 : i1;
}
int min(int i1,int i2,int i3)
{
    return i1 < min(i2,i3) ? i1 : min(i2,i3);
}

发布了39 篇原创文章 · 获赞 4 · 访问量 5781

猜你喜欢

转载自blog.csdn.net/weixin_45725137/article/details/104085765