Nous souhaitons écrire une fonction max_and_count() qui prend en paramètre un tableau d'entiers et qui calcule, en un seul parcourt du tableau, à la fois la valeur maximale contenue dans le tableau, mais également le nombre de fois qu'elle apparait.
Par exemple, sur le tableau [2,6,18,17,18,3,-7,18,-7,6,2] la valeur maximale est 18 et elle apparait 3 fois.
Implémentez un programme qui teste votre fonction a partir d'un tableau d'entiers qui est soit donné sur la ligne de commande, soit demandé à l'utilisateur avec scanf. Dans les deux cas on rensigne d'abord la taille puis les entiers. Exemple :
$> ./a.out 4 3 2 11 -13
veut dire que l'on veut appeller la contion sur le tableau de 4 valeurs [3,2,11,-13].
Avez vous un warning à la compilation (avec les options -Wall -ansi -pedantic) ? Savez vous l'expliquer ?
Nous souhaitons maintenant obtenir une fonction qui à partir d'un tableau d'entiers, initialise un deuxième tableau d'entiers contenant à chaque case le nombre d'occurences de la case de même indice dans le tableau de départ.
Par exemple, si on donne à la fonction le tableau [2,6,18,17,18,3,-7,18,-7,6,2] ainsi qu'un tableau vide de 11 cases, après l'appel à la fonction, le tableau qui était vide contient [2,2,3,1,3,1,2,3,2,2,2].
Implémentez la solution "brutale" qui pour chaque élement du tableau, parcourt tout le tableau à la recherche des doublons pour les compter. Vous êtes encouragés à coder une fonction intermédiaire count() qui prend un tableau d'entier et un entier et qui renvoie le nombre d'occurences de l'entier dans le tableau.
Implémentez un programme qui teste votre fonction a partir d'un tableau d'entiers qui est soit donné sur la ligne de commande, soit demandé à l'utilisateur avec scanf. Dans les deux cas on rensigne d'abord la taille puis les entiers. Exemple :
$> ./a.out 4 3 2 11 -13
veut dire que l'on veut appeller la contion sur le tableau de 4 valeurs [3,2,11,-13].
Avez vous un warning à la compilation (avec les options -Wall -ansi -pedantic) ? Savez vous l'expliquer ?
[bonus -- à la maison ou en fin de séance] Comment diminuer le nombre de parcourts nécessaires ? Proposez et implémentez vos idées.
Refaites la fonction de l'exercice précédant, mais maintenant le tableau de départ n'est plus un tableau d'eniter, mais une chaine de caractères (donc un tableau d'entiers typés char dont on ne connait pas a priori la taille mais qui contient le caractère spécial '\0' pour marquer sa fin).
Si ce n'est pas déjà fait depuis longtemps, faites la partie III du tp 4