Partage
  • Partager sur Facebook
  • Partager sur Twitter

exercice 4 sur les tableaux

    3 janvier 2009 à 18:56:00

    bonjour

    Je suis à l'exercice 4 sur les tableaux mais celui-ci ne fonctionnepas alors que pour moi il devrait (sauf erreur que je ne voie pas), alors please si vous voyez cette erreur dite la moi svp.

    merci

    ps : aucune erreur ou warning à la compilation.

    #include<stdio.h>
    #include<stdlib.h>
    
    void maximumTableau(long tableau[], long tailleTableau, long valeurMax);
    
    int main()
    {
        long tableau[8]={1, 2, 3, 4, 5, 6, 7, 8};
        long Max = 6;
        long i=0;
    
        for(i=0;i<8;i++)
        {
            printf("%ld\n",tableau[i]);
        }
        maximumTableau(tableau, 8, Max);
        for(i=0;i<8;i++)
        {
            printf("%ld\n",tableau[i]);
        }
        return 0;
    }
    
    void maximumTableau(long tableau[], long tailleTableau, long valeurMax)
    {
        long i=0;
    
        for(i=0;i>valeurMax;i++)
        {
            tableau[i]=0;
        }
    }
    
    • Partager sur Facebook
    • Partager sur Twitter
      3 janvier 2009 à 18:58:51

      ta boucle for de ta fonction maximum n'est jamais faite.
      il faut mettre i < tailleTableau
      et un if qui vérifie dans la boucle si tableau[i] > max
      • Partager sur Facebook
      • Partager sur Twitter
        3 janvier 2009 à 19:07:10

        merci ;) mais je comprends pas trop pourquoi ca ne fonctionne pas ça devrait, j'ai essayer i>valeurmax && i<tailletableau ca ne marche pas non plus sniff
        • Partager sur Facebook
        • Partager sur Twitter
          3 janvier 2009 à 19:29:53

          void maximumTableau(long tableau[], long tailleTableau, long valeurMax)
          {
              long i=0;
          
              for(i=0;i<tailleTableau;i++)
              {
                  if(tableau[i]>valeurMax)
                  tableau[i]=0;
              }
          }
          

          et voila, a oui j'ai oublier normalement le tableau il devrait etre saisi avant donc il faudrait aussi refaire le main avec une lecture du tableau d'abord.
          • Partager sur Facebook
          • Partager sur Twitter
            3 janvier 2009 à 19:56:59

            moi g fait ca :
            for(i=0; i< tailleTableau;i++)
            {
            if (i>valeurMax) tableau[i]=0;
            }
            • Partager sur Facebook
            • Partager sur Twitter
              3 janvier 2009 à 20:37:02

              Ton code :
              for(i=0; i< tailleTableau;i++)
              {
                if (i>valeurMax) 
                {
                  tableau[i]=0;
                }
              }
              


              Il faut bien que tu comprennes que i te sert uniquement à parcourir les cases du tableau.

              Si ton tableau fait 10 cases, alors tailleTableau = 10 et, comme les cases du tableau commencent à 0, i va prendre les valeurs de 0 à 9.

              Imaginons que ton tableau contient des entiers quelconques, et que tu veux enlever les entiers supérieurs à 50 par exemple.

              Tu regardes la case numéro 1, c'est-à-dire tableau[1]. Il faut que tu regardes si le CONTENU de la case est supérieur à 50, tu te fiches du numero de la case !

              Avec ta boucle for, tu répètes cette opération tant que l'on a pas examiné toutes les cases du tableau, c'est-à-dire tant que i < tailleTableau.

              A toi de corriger ! (Le code donné par mahdipendragon est bon)

              ;)

              edit : coquille
              • Partager sur Facebook
              • Partager sur Twitter
                3 janvier 2009 à 22:14:31

                oui mais dans l'exercice ce n'ai pas la valeur que contient chaque indice du tableau qui nous interesse mais bien les indices eux meme.
                • Partager sur Facebook
                • Partager sur Twitter
                  3 janvier 2009 à 22:36:55

                  t'est sur d'avoir compris l'exercice

                  Citation : exercice 4

                  créer une fonction maximumTableau qui aura pour rôle de remettre à 0 toutes les cases du tableau ayant une valeur supérieure à un maximum. Cette fonction prendra en paramètre le tableau ainsi que le nombre maximum autorisé (valeurMax). Toutes les cases qui contiennent un nombre supérieur à valeurMax doivent être mises à 0.
                  Prototype :


                  c'est bien écrit Toutes les cases qui contiennent un nombre supérieur à valeurMax donc c'est la valeur et non l'indice qui nous intéresse, et si tu a envies de le faire quant même c'est encore plus simple
                  for(i=valeurMax; i< tailleTableau;i++)
                  {
                      tableau[i]=0;
                  }
                  
                  • Partager sur Facebook
                  • Partager sur Twitter
                    3 janvier 2009 à 22:52:14

                    merci, j'ai mal compris l'exercice qu'elle quiche je fais. ;)
                    • Partager sur Facebook
                    • Partager sur Twitter

                    exercice 4 sur les tableaux

                    × 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