#include <IOSTREAM>
#include <CSTRING>
using namespace std;
template <typename any>
any maxn(any* p,int n);
//////////////////////////////////////////////////
template<>char* maxn(char* p[],int n);
//////////////////////////////////////////////////
int main()
{
int a[4]={10,20,30,40};
double b[6]={32.56,45.69,98.59,12.36,44.44,75.99};
char* str[5]=
{
"sadsajdadhka",
"sajkasdjsaldkalskjd",
"ajkdshcc",
"qpdqpdkdpddkpd",
"akdjsalkdjdoqnccooc",
};
cout<<"Max of a= "<<maxn(a,4)<<endl;
cout<<"Max of b= "<<maxn(b,6)<<endl;
cout<<"Address of the longest string= "<<maxn(str,5);
return 0;
}
template <typename any>
any maxn(any* p,int n)
{
int i;
any max=p[0];
for (i=1;i<=n-1;i++)
{
if(p[i]>max) max=p[i];
}
return max;
}
//////////////////////////////////////////////////////////
template<>char* maxn(char* p[],int n)
{
int* p_len=new int [n];
int p_max=0;
int i;
for (i=0;i<=n-1;i++)
{
p_len[i]=strlen(p[i]);
if(p_len[i]>p_max) p_max=p_len[i];
}
for (i=0;i<=n-1;i++)
{
if(p_len[i]=p_max)
{
delete [] p_len;
return p[i];
}
}
}