Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de compilation incompréhensible ???

Fonction récursives qui ne marche pas...

    30 novembre 2015 à 17:21:09

    Bonsoir tout le monde,

    Je me présente, c'est Junior je suis en Terminale S et je fais actuellement option ISN(Informatique et Science Du Numérique), avec l'un de mes profs on fait beaucoup de java's cool(un java modifié), on travaille actuellement sur les "fonctions récursives" et et je bosse un TP qui faudra rendre et j'arrive pas à comprendre...

    Mon programmes ne veut pas se compiler ! 

    Je dois faire un petit programme calculant le logarithme d'un nombre en utilisant une "fonction récursive", j'aurais pus faire une procédure dans le void "main" qui serait plus simple mais voilà je suis obligé...

    Voici ci dessous mon code :

    int elog (int chiffre)

    {

    int n=0;

    double elog = chiffre/pow(2,n);

    while(elog > 1) 

    {

    n = n+1;

    elog = chiffre/pow(2,n);

    }

    return elog;

    }

    void main()

    {

    println("Ce programme va pour permettre de trouver le logarithme d'un nombre !");

    int chiffre = readInt("Veuillez inscrire votre chiffre concerné : ");

    println("Le chiffre " + chiffre + " a pour logarithme " + elog(chiffre));

    }

    Je vous laisse aussi ci dessous, la capture d'écran du problème de compilation :

    http://www.noelshack.com/2015-49-1448900426-jc.jpg

    • Partager sur Facebook
    • Partager sur Twitter
      30 novembre 2015 à 17:48:19

      Bonjour.

      Merci d'utiliser la balise </> pour formater le code.

      Le message est clair : tu retournes un double alors que tu as déclaré que ta méthode retournait un int.

      Il faut donc faire un cast explicite pour forcer la conversion.

      • Partager sur Facebook
      • Partager sur Twitter
      Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
        1 décembre 2015 à 22:53:50

        Bonsoir,

        Je dirais plutôt que log prend un double et retourne un double. Il faut donc changer le type de retour de ta fonction et de chiffre (à deux endroits).

        • Partager sur Facebook
        • Partager sur Twitter

        Problème de compilation incompréhensible ???

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown