#include #include /* Énoncé: Coder une fonction générique (template) qui permet de calculer la moyenne d'un tableau. Ce tableau peut être de type int*, float*, double*, ... Les arguments de la fonction sont le tableau et sa taille. Le type de retour est float. Que ce passe t'il lorsque on envoit un tableau de string en argument ? Pourquoi ? */ template float mean(T* tab, int n){ T s = 0; for(int i = 0 ; i < n ; i++){ s += tab[i]; } return float(s)/float(n); } int main(){ int tab_int[] = {1,3,5,6,-6}; double tab_double[] = {1.0, 3.0, 5.0, 6.0, -6.0}; float tab_float[] = {1.0f, 3.0f, 5.0f, 6.0f, -6.0f}; std::string tab_str[] = {"abc", "1", "56"}; std::cout << mean(tab_int, 5) << std::endl; std::cout << mean(tab_float, 5) << std::endl; std::cout << mean(tab_double, 5) << std::endl; // Cette ligne ne compile pas car cast impossible de string vers float // std::cout << mean(tab_str, 3) << std::endl; return 0; }