Partage
  • Partager sur Facebook
  • Partager sur Twitter

exercise 5 tableau

langage C

    12 août 2021 à 22:00:47

    Bonjour a tous,

    j'ai besoin d'aide s'il vous plait, je suis completement perdu sur l'exercise 5 des tableaux. 

    pour l'ordre croissant mon code marche mais ne renvoie aucune valeurs.

    #include <stdio.h>
    #include <stdlib.h>
    
    int sommeTableau(int tableau[], int tailleDuTableau);
    double moyenneTableau(int tableau[], int tailleDuTableau);
    void copie(int tableauOriginal[], int tableauCopie[], int tailleDuTableau);
    void maximunTableau(int tableau[], int tailleDuTableau, int valeurMax);
    void ordonnerTableau(int tableau[], int tailleDuTableau);
    
    
    
    int main(int argc, char*argv[])
    
    {
        int tableau[4] = {16,23,38,5}, tableauCopie[4] = {0}, valeurMax = 22;
    
        sommeTableau(tableau, 4);
        moyenneTableau(tableau, 4);
    
    
        printf("La somme des valeurs du tableau est de %d\n\n", sommeTableau(tableau,4));
    
        printf("La moyenne des valeurs du tableau est de %f\n\n", moyenneTableau(tableau,4));
    
        printf("copie du tableau:\n");
        copie(tableau, tableauCopie, 4);
    
        printf("Valeurs en dessous du max:\n");
        maximunTableau(tableau, 4, valeurMax);
    
        printf("Tableau en ordre croissant:\n");
        ordonnerTableau(tableau, 4);
    
        return 0;
    
    }
    
    
    
    int sommeTableau(int tableau[], int tailleDuTableau)
    
    {
        int i, somme = 0;
    
        for(i = 0; i < tailleDuTableau; i ++)
        {
            somme = somme + tableau[i];
        }
        return somme;
    }
    
    double moyenneTableau(int tableau[], int tailleDuTableau)
          {
            int i;
            double somme = 0, moyenne = 0;
    
            for(i = 0; i < tailleDuTableau; i++)
            {
                somme = somme + tableau[i];
            }
             moyenne = somme/tailleDuTableau;
    
            return moyenne;
          }
    
    void copie(int tableauOriginal[], int tableauCopie[], int tailleDuTableau)
        {
            int i;
    
            tableauCopie = tableauOriginal;
    
            for(i = 0; i <tailleDuTableau; i ++)
            {
             printf("%d\n", tableauCopie[i]);
            }
    
        }
    
    void maximunTableau(int tableau[], int tailleDuTableau, int valeurMax)
    
    {
        int i = 0;
    
        for(i = 0; i < tailleDuTableau; i ++)
        {
            if(tableau[i]>valeurMax)
            {
                tableau[i]=0;
            }
            else tableau[i]=tableau[i];
    
                printf("%d\n", tableau[i]);
        }
    }
    
    void ordonnerTableau(int tableau[], int tailleDuTableau)
            {
                int i = 0, j = 0;
                int temp = 0;
    
                for(i =0; i < tailleDuTableau; i++)
                {
                    for(j= i+1; j < tailleDuTableau; j++)
                {
                        if(tableau[i]>tableau[j])
                    {
                        temp = tableau[i];
                        tableau[i]=tableau[j];
                        tableau[j]=temp;
                    }
                }
                }
            }
    



    • Partager sur Facebook
    • Partager sur Twitter
      12 août 2021 à 23:34:06

      Hello,

      Tu ne demandes pas à ton pogramme d'afficher quoi que ce soit après avoir trié le tableau....

      Et il est normal que ordonnerTableau() ne renvoie rien, c'est une fonction void

      Edit 1: la fonction copie() n'est pas correcte, elle ne copie rien du tout. Pour preuve, affiche tableauCopie dans le main() (ou appelle une fonction faite pour, voir edit 3)

      Edit 2: pourquoi le else ligne 90 ?

      Edit 3: une fonction qui copie, ne fait que copier, elle n'affiche pas. Idem pour maximumTableau(). Ecris-toi une fonction qui affiche un tableau d'entier, par exemple void DisplayIntArray(int array[],int nelem). Je crois même qu'elle est proposée dans le tutoriel.

      -
      Edité par edgarjacobs 13 août 2021 à 0:50:29

      • Partager sur Facebook
      • Partager sur Twitter

      On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

        13 août 2021 à 1:14:47

        Tu appelles sommeTableau et moyenneTableau deux fois, avant et dans les printf. Une fois suffit.
        Et tu n'assigne pas les résultats à des variables en dehors des printf. Les valeurs sont perdues.
        Tu peux simplifier moyenneTableau en appelanft sommeTableau à l'intérieur. Pourquoi le refaire une autre fois?
        La fonction displayArray() ou afficheTableau() si tu veux :) est facile à écrire.
        • Partager sur Facebook
        • Partager sur Twitter

        Le Tout est souvent plus grand que la somme de ses parties.

        exercise 5 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