Partage
  • Partager sur Facebook
  • Partager sur Twitter

exos tableau

conseils svp

Sujet résolu
    27 avril 2006 à 19:15:22

    Cette fois ci, je vous expose mes résultats pour les exos 4 et 5 du chapitre tableau. Dîtes moi s'il vous plait ce qui peut étre amélioré, simplifié...
    Merci d'avance ;)

    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.

    Secret (cliquez pour afficher)
    /////////////////////////////
    //  Tableau : Exercice 4  //
    ////////////////////////////

    #include <stdio.h>

    void maxTableau(long tableau[], long tailleTableau, long valeurMax);    //prototype

    int main(int argc, char *argv[])    //fonction "main"
    {
      long taille = 5;                  //déclaration variables
      long i;
      long valeurMax = 35;
      long tableau[5] = {0};             //déclaration tableau
     
      printf("Les nombres choisis ne doivent pas depasser 35\n\n");
      printf("Choix des 5 nombres du tableau : \n\n");
     
      for(i = 0 ; i < taille ; i++)  //choix des nombres du tableau
      {
      printf("nombre %ld: ", i+1);
      scanf("%ld", &tableau[i]);
      printf("\n");
      }
     
      maxTableau(tableau, taille, valeurMax);        //appelle "maxTableau"
      printf("\n\n");
     
      system("PAUSE");      //fin du programme
      return 0;
    }

    void maxTableau(long tableau[], long tailleTableau, long valeurMax)
    {
         long i;
         
         for(i = 0 ; i < tailleTableau ; i++)           //parcours du tableau
         {
             if(tableau[i] > valeurMax)  //mise a 0 des nombres > valeurMax
             {
                           tableau[i] = 0;
             } 
         }
         
         printf("Les nouveaux nombres du tableau : \n\n");
         
         for(i = 0 ; i < tailleTableau ; i++)    //vérification
         {
               printf("\t> %ld\n", tableau[i]);
         }
    }


    Exercice 5 (plus difficile) : créer une fonction ordonnerTableau qui classe les valeurs d'un tableau dans l'ordre croissant. Ainsi, un tableau qui vaut {15, 81, 22, 13} doit à la fin de la fonction valoir {13, 15, 22, 81} !
    Cet exercice est un peu plus difficile que les autres, mais est tout à fait réalisable. Ca va vous occuper un petit moment


    Secret (cliquez pour afficher)
    ////////////////////////////
    //  Tableau : Exercice 5  //
    ////////////////////////////

    #include <stdio.h>   //préprocesseur

    void ordonnerTableau(long tableau[], long tailleTableau); //prototype

    int main(int argc, char *argv[])   //fonction "main"
    {
      long taille = 5;                 //déclaration variables
      long i;
      long tableau[5] = {0};            //déclaration tableaux
     
      printf("Choix des 5 nombres du tableau : \n\n");
     
      for(i = 0 ; i < taille ; i++)     //choix des nombres
      {
      printf("nombre %ld: ", i+1);
      scanf("%ld", &tableau[i]);
      printf("\n");
      }
     
      ordonnerTableau(tableau, taille); //      appelle "ordonnerTableau"
      printf("\n\n)");
     
      system("PAUSE");     
      return 0;
    }

    void ordonnerTableau(long tableau[], long tailleTableau) //fonction"ordonnerTableau"
    {
         long i, j, transit = 0;
         
         for(j = 0 ; j < tailleTableau ; j++)
         {
               for(i = 0 ; i < tailleTableau ; i++)
         {
               if(tableau[i] > tableau[i+1] && i!= tailleTableau)
               {
                             transit = tableau[i];
                             tableau[i] = tableau[i+1];
                             tableau[i+1] = transit;
               }
         }
         }
         
         for(i = 0 ; i < tailleTableau ; i++) //vérification
         {
               printf("\t> %ld\n", tableau[i]);
         }
    }
    • Partager sur Facebook
    • Partager sur Twitter
      27 avril 2006 à 20:56:28

      Pour l'exercice 5, ce test : i!= tailleTableau est inutile. Dans ta boucle, i ne peut pas avoir cette valeur.

      Sinon, je vois que tout le monde utilise la même méthode pour trier un tableau. Elle fonctionne, mais a le désavantage de faire N*N tests, où N est la taille du tableau.

      Il existe des méthodes pour en faire moins, c'est assez intéressant de les rechercher :)
      • Partager sur Facebook
      • Partager sur Twitter
        28 avril 2006 à 11:46:51

        Ok merci ;)
        Une autre question : vous ne connaissez pas un site où l'on trouverai les différenteS instructions possibles, et les façon de les utiliser? quand ? comment ?... Par exemple dans mon ancien topic, on me conseillai d'utiliser sscanf, ou fgets à la place de scanf :euh:
        • Partager sur Facebook
        • Partager sur Twitter

        exos 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