Partage
  • Partager sur Facebook
  • Partager sur Twitter

Check exercices tableau

    21 mai 2017 à 21:42:41

    Hello la compagnie.

    J'espère que vous allez bien. Je suis actuellement au niveau des tableaux et on nous a donné la mission de résoudre 5 petits exercices.

    J'en ai fais déjà 4 et j'essaie le 5ème. Cependant, comme le 5ème est plus dur j'aimerai avant tout savoir si mes 4 autres exercices sont correcte.

    Pouvez-vous donc me dire si cela est juste? ( si j'ai bien compris la consigne, si on fait bien tout ce qui est demandé,.... )

    Mon fichier .C

    #include <stdio.h>
    #include <stdlib.h>
    #include "CHAP14_TABLEAU_EX.H"
    
    int main()
    {
    
     //Variable Ex 1
     int tableau[5] ={1, 2, 4, 2};
     int Total = 0;
     //Variable Ex 2
     int ToTal = 0;
     int tableauMoyen[3] = {6, 8, 4};
     //Variable Ex 3
     int tableauOriginal[5] = {13, 15, 26, 8};
     int tableauCopie[5] = {0};
     int i = 0;
     //Variable Ex 4
     int tableauMax[5] = {10,5,6,23,3};
     int ValeurMax = 10;
     int i2 = 0;
    
     // EX 1: somme des chiffres du tableau
     Total = sommeTableau(tableau, 5);
     printf("somme tableau = %d\n\n", Total);
     printf("-------------------------------------------------------------------\n\n");
    
     /*---------------------------------------------------------------------------------
     Ex 2: moyenne des chiffres du tableau*/
     ToTal = moyenneTableau(tableauMoyen, 3);
     printf("Moyenne tableau = %d\n\n", ToTal);
     printf("-------------------------------------------------------------------\n\n");
    
     /*----------------------------------------------------------------------------------
     Ex 3: Copie tableau 1 à 2*/
     copie(tableauOriginal,tableauCopie, 5);
    
        for(i = 0; i < 5; i++)
        {
             printf("original %d / Copie %d\n", tableauOriginal[i], tableauCopie[i]);
        }
    
        printf("-------------------------------------------------------------------\n\n");
    
     /*-----------------------------------------------------------------------------------
     Ex 4: Valeur du tableau > Valmax =0*/
     maximumTableau(tableauMax, 5, ValeurMax);
     for(i = 0; i < 5; i++)
        {
            printf("%d : %d\n", i, tableauMax[i]);
        }
        printf("-------------------------------------------------------------------\n\n");
    
     return 0;
    
    }
    
    int sommeTableau(int tableau[], int tailleTableau)
    {
        int i = 0;
        int Total = 0;
    
        for (i = 0; i < tailleTableau; i++)
        {
            Total = Total + tableau[i];
        }
        return Total;
    }
    
    double moyenneTableau(int tableauMoyen[], int tailleTableau)
    {
        int i = 0;
        int Moyenne = 0;
    
        for(i = 0; i < tailleTableau; i++)
        {
            Moyenne = Moyenne + tableauMoyen[i];
        }
        Moyenne = Moyenne/tailleTableau;
    
        return Moyenne;
    }
    
    void copie(int tableauOriginal[], int tableauCopie[], int tailleTableau)
    {
    
    
        int i = 0;
    
        for( i = 0; i < tailleTableau; i++)
        {
            tableauCopie[i] = tableauOriginal[i];
        }
    }
    
    void maximumTableau(int tableau[], int tailleTableau, int valeurMax)
    {
        int i = 0;
    
        for(i = 0; i < tailleTableau; i++)
        {
            if(tableau[i] >= 10)
            {
                tableau[i] = 0;
            }
            else
            {
                tableau[i];
            }
        }
    }
    



    mon fichier .h

    #ifndef CHAP14_TABLEAU_EX_H_INCLUDED
    #define CHAP14_TABLEAU_EX_H_INCLUDED
    
    int sommeTableau(int tableau[], int tailleTableau);
    double moyenneTableau(int tableau[], int tailleTableau);
    void copie(int tableauOriginal[], int tableauCopie[], int tailleTableau);
    void maximumTableau(int tableau[], int tailleTableau, int valeurMax);
    
    
    #endif // CHAP14_TABLEAU_EX_H_INCLUDED

    Merci de votre aide.


    -
    Edité par raphs18b 21 mai 2017 à 21:50:52

    • Partager sur Facebook
    • Partager sur Twitter
      21 mai 2017 à 22:15:31

      Salut,

      • Pourquoi ne pas utiliser la fonction somme dans ta fonction moyenne ?
      • Ta fonction moyenne ne fonctionne pas par exemple pour le tableau {1, 2, 4} car elle effectue une division d’entiers (qui donne un entier). Pour la corriger il faut qu’une des opérandes de ta division soit un double (la somme par exemple).
      • Dans ta fonction maximum, le cas else est inutile.

      Sinon, indentes mieux ton main et garde un style cohérent pour le nommage de tes variables (pourquoi Total avec une majuscule mais tableau avec une minuscule, …).

      Bravo d’avoir plusieurs tableaux, mais ce qui serait vraiment bien, c’est de tester chaque fonction avec plusieurs tableaux différents pour voir si elles te donnent bien le résultat attendu (ça aurait permis de voir le problème de la fonction moyenne).

      • Partager sur Facebook
      • Partager sur Twitter
      Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs
        21 mai 2017 à 22:16:03

        Bonjour,

        la fonction maximunTableau, la variable valeurMax n'est pas utilisée. De plus, cette fonction devrait s'appeler autrement car elle met toutes les valeurs supérieurs à valeurMax (certainement) à zéro.

        La fonction moyenneTableau, tu peux utiliser la fonction sommeTableau au lieu de réécrire une nouvelle boucle for.

        Ensuite moyenneTableau retourne un type double, qui est ensuite stocké dans la variable ToTal de type int. Et bien, il faut que ToTal soit de type double. Donc crée une nouvelle variable.

        En prenant ta fonction moyenneTableau, il faut que la variable Moyenne soit de type double. Dans ton cas avec les nombres 6, 8, 4 la moyenne est de 6, OK.

        Maintenant, essai avec 7, 8, 4, la moyenne est de 6.3333, et comme actuellement, Moyenne est de type int c'est la division euclidienne qui est effectué et au lieu d'obtenir 6.333, tu auras comme résultat 6 qui est KO.

        • Partager sur Facebook
        • Partager sur Twitter
          22 mai 2017 à 21:13:28

          yo@n97one a écrit:

          Salut,

          • Pourquoi ne pas utiliser la fonction somme dans ta fonction moyenne ?
          • Ta fonction moyenne ne fonctionne pas par exemple pour le tableau {1, 2, 4} car elle effectue une division d’entiers (qui donne un entier). Pour la corriger il faut qu’une des opérandes de ta division soit un double (la somme par exemple).
          • Dans ta fonction maximum, le cas else est inutile.

          Sinon, indentes mieux ton main et garde un style cohérent pour le nommage de tes variables (pourquoi Total avec une majuscule mais tableau avec une minuscule, …).

          Bravo d’avoir plusieurs tableaux, mais ce qui serait vraiment bien, c’est de tester chaque fonction avec plusieurs tableaux différents pour voir si elles te donnent bien le résultat attendu (ça aurait permis de voir le problème de la fonction moyenne).


          Hello, Merci de vos réponse. Je ne comprends pas pour l'exercice MAX. Il fonctionne non?
          • Partager sur Facebook
          • Partager sur Twitter
            22 mai 2017 à 21:39:55

            Oui, il fonctionne (et encore, non, car tu vérifies que c’est supérieur à 10 or tu dois vérifier que c’est supérieur à valeurMax), mais le else est inutile. ^^ Note de plus que le nom de la fonction est très mal choisi. Une fonction qui s’appelle maximumTableau devait… renvoyer la valeur maximale du tableau. :)

            • Partager sur Facebook
            • Partager sur Twitter
            Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs
              30 mai 2017 à 20:09:36

              yo@n97one a écrit:

              Oui, il fonctionne (et encore, non, car tu vérifies que c’est supérieur à 10 or tu dois vérifier que c’est supérieur à valeurMax), mais le else est inutile. ^^ Note de plus que le nom de la fonction est très mal choisi. Une fonction qui s’appelle maximumTableau devait… renvoyer la valeur maximale du tableau. :)


              oula j'étais fatigué. hahaha merci je viens de réaliser la chose.

              Bonne soirée.
              • Partager sur Facebook
              • Partager sur Twitter

              Check exercices tableau

              × 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