oto tresc zadania: Napisz szablon funkcji maxn() pobierajacej jako parametr tablice typu T oraz liczbe elementow tej tablicy, zwracajacej najwiekszy element tablicy. Przetestuje w programie 5-elementowa tablice wartosci int i 4-elementowa double. Program powinien korzystac ze specjalizacji przyjmujacej jako parametr tablice typu char, zwracajacej sdres najdluzszego napisu. Jesli jest kilka najdluzszych lancuchow, funkcja powinna zwracac adres pierwszego z nich. Sprawdz specjalizacje z tablica 5 lancuchow.
cos tu jest nie tak w moim kodzie.
z gory dzieki za pomoc
#include <iostream>
#include <cstring>
using namespace std;
template <class T>
T maxn(T tab[], int n);
template <> char* maxn<char>(char tab[][20], int n);
int main()
{
int tab[5]={2,7,6,4,3};
cout<<maxn(tab,5)<<endl;;
double tabl[4]={1.3,4.6,8.7,3.5};
cout<<maxn(tabl,4)<<endl;
char tablica[5][20]={ "Mik", "makaka", "najdluzszy", "sfs", "fdf"};
cout<<maxn(tablica,5)<<endl;
return 0;
}
template <class T>
T maxn(T tab[], int n)
{
T max=tab[0];
for (int i=1; i<5; i++){
if (tab[i]>max)
max=tab[i];
else
continue;
}
return max;
}
template <> char* maxn<char>(char tab[][20], int n){
char *p=tab; // to samo co &tab[0]
for (int i=1; i<n; i++){
if ((strlen(tab[i])) > (strlen(*p)))
p=tab[i];
else
continue;
}
return p;
}