Partage
  • Partager sur Facebook
  • Partager sur Twitter

algo d'un exo qui se compile mais ne se termine pa

    11 mai 2019 à 10:59:06

    Bonjours pour un exercice je doit refaire cette algo en c:

    pseudo code:

    Procédure Calcul (Entrées-Sorties X, Y : Réel)

    Début

           X=X+1

           Y =Y+X

    Fin

    Début

         Lire(val1)

         Lire(val2)

         Tant Que val1 <5

         faire

                CALCUL(val1,val2)

         FinTantQue

    Fin

    Mon algo en c: il se compile mais je pense que le tant que n'est pas bien compris des explication?

    #include<stdio.h> 
    void	Calcul(int	val1,	int	val2);
    int	main()
    {			int	val1,	val2;
    				printf ("entrer 2 valeur");
    				scanf("%d",	&val1);
    				scanf("%d",	&val2);
    				while	(val1<5){
    								Calcul(val1,	val2);
    				}
    }
    void	Calcul(int val1,	int	val2){
    				val1	=	val1+1;
    				val2    =   val2+val1;
    				
    }



    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      11 mai 2019 à 11:21:57

      Bonjour,

      hum, c'est pas contre toi, mais c'est quoi cette indentation? :euh:

      le while ne fonctionne pas car val1 et val2 ne sont pas des pointeurs. Elles ont pris la bonne valeur à l'intérieur de la fonction Calcul, mais à la fin de la fonction les variables sont supprimés.

      voici un code un peu plus clair, et fonctionnel (les accolades deviennent facultatives si il n'y a qu'un instruction dans le while)

      #include <stdio.h>
      #include <stdlib.h>
      
      void calcul(int *x, int *y)
      {
          *x+=1;
          *y+=*x;
      }
      
      int main()
      {
          int val1 = 0, val2 = 0;
          printf("Entrez 2 entiers : ");
          scanf("%d%d", &val1, &val2);
      
          while(val1 < 5)
              calcul(&val1,&val2);
      
          printf("val1 = %d\nval2 = %d", val1, val2);
          //J'ajoute un printf afin de connaître les résultats
          return EXIT_SUCCESS;
      }


      -
      Edité par Anonyme 11 mai 2019 à 11:24:56

      • Partager sur Facebook
      • Partager sur Twitter
        11 mai 2019 à 11:35:46

        Scover a écrit:

        Bonjour,

        hum, c'est pas contre toi, mais c'est quoi cette indentation? :euh:

        le while ne fonctionne pas car val1 et val2 ne sont pas des pointeurs. Elles ont pris la bonne valeur à l'intérieur de la fonction Calcul, mais à la fin de la fonction les variables sont supprimés.

        voici un code un peu plus clair, et fonctionnel (les accolades deviennent facultatives si il n'y a qu'un instruction dans le while)

        #include <stdio.h>
        #include <stdlib.h>
        
        void calcul(int *x, int *y)
        {
            *x+=1;
            *y+=*x;
        }
        
        int main()
        {
            int val1 = 0, val2 = 0;
            printf("Entrez 2 entiers : ");
            scanf("%d%d", &val1, &val2);
        
            while(val1 < 5)
                calcul(&val1,&val2);
        
            printf("val1 = %d\nval2 = %d", val1, val2);
            //J'ajoute un printf afin de connaître les résultats
            return EXIT_SUCCESS;
        }


        -
        Edité par Scover il y a 8 minutes

        Merci merci. Mon indentation est vraiment degueux?

        ducout si je comprend bien c'était une erreurs de pointeurs? 



        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          11 mai 2019 à 11:59:25

          FranckRaspiller a écrit:

          ducout si je comprend bien c'était une erreurs de pointeurs? 



          oui j'ai testé et ça marche.. Oui ton indentation n'est pas très jolie ce n'est pas (du tout) lisible

          -
          Edité par Anonyme 11 mai 2019 à 12:00:47

          • Partager sur Facebook
          • Partager sur Twitter

          algo d'un exo qui se compile mais ne se termine pa

          × 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