Bonjour à tous,
J'ai commencé à apprendre le langage C il y a quelques mois, donc je suis encore un débutant.
On me demande d'implémenter une fonction int max(int n, int* t) de manière récursive. Cette fonction doit prendre en argument un tableau d’entiers et la taille de ce tableau, et retourner la valeur maximale de ce tableau.
Je crois comprendre la logique, mon idée est la suivante : je pourrais peut-être, tout en décrémentant la valeur de n, comparer deux tableaux, celui qu'on a de base, t[n], et le tableau t[n-1]. Ce que je ferais donc est que j'appellerais la fonction de cette manière.
Il me faut une condition de terminaison : le moment où je compare plus un tableau avec un autre tableau, mais deux valeurs. A ce moment là, je retourne le plus grand des deux.
Ainsi, en "remontant" toute la chaîne des rappels récursifs, je pense que ca devrait jouer ?
Bon, maintenant la partie difficile est de mettre ca en code, mais j'ai beaucoup de mal à le faire (pas seulement pour celle-ci, mais les fonctions récursives en général). Je comprends quand je vois en code, mais en faire un tout seul ça me surpasse..
Les fonctions récursives je ne les trouve pas très intuitifs non plus, mais j'ai vraiment envie de bien comprendre la logique, et surtout bien m'entraîner pour m'y habituer.
Si quelqu'un pouvait m'aider à m'expliquer la chose un peu plus clairement, car je crains que ce que j'ai maintenant est globalement correct, mais ne va pas me suffir.
Merci d'avance à tous!
-----