c++函数重载,比较大小

求帮助,

img


第二题

img

如下,如有帮助,请帮忙采纳一下,谢谢。


#include <stdio.h>

int comp(int a,int b)
{
    if(a>b) return 1;
    if(a<b) return -1;
    return 0;
}

int comp(char a,char b)
{
    if(a>b) return 1;
    if(a<b) return -1;
    return 0;
}

int comp(char* s1,char* s2)
{
    while(*s1 != '\0' && *s2 != '\0')
    {
        if(*s1 > *s2) return 1;
        if(*s1 < *s2) return -1;
        s1++;
        s2++;
    }
    if(*s1 == 0 && *s2 != 0)
        return -1;
    else if(*s1 != 0 && *s2 == 0)
        return 1;
    else
        return 0;
}


int main()
{
    int a = 2,b=3;
    char ch1='z',ch2 = 'c';
    char* s1 = "abcde";
    char* s2 = "abcfff";
    int res = comp(a,b);
    if(res > 0)
        printf("%d 大于%d\n",a,b);
    else if(res < 0)
        printf("%d 小于%d\n",a,b);
    else
        printf("%d 等于%d\n",a,b);

    res = comp(ch1,ch2);
    if(res > 0)
        printf("%c 大于%c\n",ch1,ch2);
    else if(res < 0)
        printf("%c 小于%c\n",ch1,ch2);
    else
        printf("%c 等于%c\n",ch1,ch2);

    res = comp(s1,s2);
    if(res > 0)
        printf("%s 大于%s\n",s1,s2);
    else if(res < 0)
        printf("%s 小于%s\n",s1,s2);
    else
        printf("%s 等于%s\n",s1,s2);
    
    return 0;
}

到底是重载还是模板?
重载的话


int MyMax(int a, int b, int c)
{
    int r = a;
    if (b > r)
        r = b;
    if (c > r)
        r = c;
    return r;
}
double MyMax(double  a, double  b, double  c)
{
    double  r = a;
    if (b > r)
        r = b;
    if (c > r)
        r = c;
    return r;
}
char MyMax(char a, char b, char c)
{
    char r = a;
    if (b > r)
        r = b;
    if (c > r)
        r = c;
    return r;
}

模板的话


template<typename type>
type MyMax(type a, type b, type c)
{
    type r = a;
    if (b > r)
        r = b;
    if (c > r)
        r = c;
    return r;
}