Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de fonction

    11 février 2019 à 13:05:05

    Bonjour,

    Je débute en C et j'aimerais savoir ou est le problème dans mon code, Le code consiste simplement à iterer un Nombre par la suite de Syracuse.

    #include <stdio.h>
    int Syracuse(int N){
    while(N=!1){
    if (N%2==1){
    N=N*3+1;
    printf("%d\n",N);
    }
    else if (N%2==0){
    N=N/2;
    printf("%d\n",N);
    }
    else{
    printf("Ton nombre doit etre plas grand ou egal a 1! :(");
    }
    }
    }
    int main(){
    int N;
    scanf("%d",&N);
    Syracuse(N);
    return 0;
    }

    Le code est affiché en une ligne, je le copie/colle sur texte pour une bonne visibilité:


    #include <stdio.h>
    int Syracuse(int N){
      while(N=!1){
        if (N%2==1){
          N=N*3+1;
          printf("%d\n",N);
        }
        else if (N%2==0){
          N=N/2;
          printf("%d\n",N);
        }
        else{
          printf("Ton nombre doit etre plas grand ou egal a 1! :(");
        }
      }
    }
     int main(){
       int N;
       scanf("%d",&N);
       Syracuse(N);
       return 0;
      }

    -
    Edité par ManuCure 11 février 2019 à 13:08:19

    • Partager sur Facebook
    • Partager sur Twitter
      11 février 2019 à 14:06:21

      Bonjour ! Pourquoi dis-tu qu'il y a un problème ? Le programme ne marche pas ? il ne fait pas ce qu'il faut ? Dans ce cas explique !

      • Partager sur Facebook
      • Partager sur Twitter
        11 février 2019 à 14:09:15

        Salut,

        ta fonction Syracuse est de type int mais ne renvois rien. Il faut donc la définir comme une fonction de type "void" comme ceci :

        void Syracuse(int N) {
        
        // Le code de ta fonction
        
        }

        Cela devrait régler le problème. Après si ton nombre est inférieur à 1 tu vas boucler indéfiniment sur ton message d'erreur, mais ça c'est une autre histoire...

        -
        Edité par Sp0nge_Bob 11 février 2019 à 14:10:04

        • Partager sur Facebook
        • Partager sur Twitter
          11 février 2019 à 15:42:51

          je l'ai défini comme étant un void mais ça ne marche toujours pas , ça ne renvoie rien.
          • Partager sur Facebook
          • Partager sur Twitter
            11 février 2019 à 16:20:58

            En effet , j'ai mal écrit l'opérateur merci à tous ! :D
            • Partager sur Facebook
            • Partager sur Twitter

            Problème de fonction

            × 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