Bonjour,
j'essaie d'écrire un programme avec une fonction récursive qui, à partir d'une liste des NB entiers et une somme donnée, calcule et affiche un sous-ensemble des nombres dont la somme est la somme en question.

Si un tel sous-ensemble existe, sinon un message indiquant la non-existence d'un tel sous-ensemble doit apparaître.


Par exemple, pour la liste : 5, 13, 24, 9, 3, 3 et somme_donnee=. 28, mon programme doit afficher : 13, 9, 3, 3.
---------------

Voici ce que j'ai fait:

Bool recherche (int tab, int nb, int somme_donnee)
{
If (tab[nb-1] = = somme_donnee)

{
Afficher tab[nb-1];
Return (vrai);
}
//Si on suppose une valeur vrai donc la somme cherchee n //est plus somme_donnee, mais somme_donnee – tab[nb-1].

If (nb>1 && recherche (tab, nb-1, somme_donnee – tab[nb-1]))
{

}
Afficher tab[nb-1];
Return (vrai);
}

//Autrement, on reduit le tableau en prenant de element 1 a l’avant //dernier element au lieu du dernier.

If (If nb>1 && recherche (tab, nb-1, somme_donnee)
{
Return (true);
}
Return (false);

}
}

Quelqu'un peut m'aider à poursuivre, je n'arrive à trouver quoi ce qu'il manque pour que le programme fonctionne?