c++函数模板函数模板

编写一个求任意类型数组中最大元素和最小元素的程序,要求将求最大元素和最小元素的函数设计成函数模板。
帮忙改一下

#include<iostream>
#include <cstring>
#include <stdio.h>
#define S 100
using namespace std;
template<typename T> 
T max(T *x,int n)
{
    T max=x[0];
    for(int i=1;i<n;i++)
    max=max>x[i]?max:x[i];
    return max; 
}
template<typename T> 
T min(T *x,int n)
{
    T min=x[0];
    for(int i=1;i<n;i++)
    min=min<x[i]?min:x[i];
    return min;
}
int main()
{
    int i=0,j=0,k=0;
    int a[S];
    double *b=new double[S];
    char *c=new char[S];
    cout<<"请输入int型数组的内容,以#结尾:";
    do
    {
        
    } 
    while();
    cout<<"int型数组的最大值为:"<<max(a,i)<<endl; 
}

img

你题目的解答代码如下:

#include<iostream>
#include <cstring>
#include <stdio.h>
#define S 100
using namespace std;
template<typename T>
T max(T *x,int n)
{
    T max=x[0];
    for(int i=1;i<n;i++)
    max=max>x[i]?max:x[i];
    return max;
}
template<typename T>
T min(T *x,int n)
{
    T min=x[0];
    for(int i=1;i<n;i++)
    min=min<x[i]?min:x[i];
    return min;
}
int main()
{
    int i=0,j=0,k=0;
    int a[S];
    double *b=new double[S];
    char *c=new char[S];
    char t[100],ct;
    cout<<"请输入int型数组的内容,以#结尾:";
    do
    {

        cin >> t;
        if (strcmp(t, "#")==0)
            break;
        a[i] = atoi(t);
        i++;
    }
    while(1);
    cout<<"int型数组的最大值为:"<<max(a,i)<<endl;
    cout<<"int型数组的最小值为:"<<min(a,i)<<endl;
    cout<<"请输入double型数组的内容,以#结尾:";
    do
    {
        cin >> t;
        if (strcmp(t, "#")==0)
            break;
        b[j] = atof(t);
        j++;
    }
    while(1);
    cout<<"double型数组的最大值为:"<<max(b,j)<<endl;
    cout<<"double型数组的最小值为:"<<min(b,j)<<endl;
    cout<<"请输入char数组的内容,以#结尾:";
    do
    {
        cin >> ct;
        if (ct=='#')
            break;
        c[k] = ct;
        k++;
    }
    while(1);
    cout<<"char型数组的最大值为:"<<max(c,k)<<endl;
    cout<<"char型数组的最小值为:"<<min(c,k)<<endl;
    return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632