Tableau en C

Bonjour,
Je voulais savoir comment je pouvais trouver la plus petite valeur d'un tableau en C sans être obligé de le trier ?
Merci d'avance



--
Java is the best

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Bonjour,

    Soit min la variable qui contient le plus petit élément.
    Tu l'initialises avec la première valeur du tableau.
    Tu parcours tous les éléments du tableau avec une boucle for et dès que l'élément en cours est plus petit que min, tu le sauvegardes dans min (simple if). Ainsi min contiendra à chaque itération la plus petite valeur.

    A la fin de la boucle for, tu es assuré d'avoir la plus petite valeur.

    Cdlt,
    1. Contributeur
      ce qui donne :
      const unsigned int N=...;
      T tab[N];
      rempli(tab);//fonction de remplissage
      unsigned long int m=tab[0];
      T* t;
      for(t=tab+1;t+1!=tab+N;t++)m>*t?m=*t:1;
      1. Contributeur
        C'est interdit en C-Ansi de mettre une variable ou constante pour définir la taille d'un tableau.
        Il vaut mieux passer par un bon vieux #define.
      2. En effet c'est interdit .
        Le soucis c'est que j'avais fait un bout de programme pour récupérer la plus grande valeur, mais pour la plus petite je ne vois pas ce qu'il faut changer à ce programme...
      3. Contributeur
        en général "<" par ">".
        Pour le tableau, c'est accepté en C99, donc standard.
      4. ne t'inquiètes j'ai essayé mais sa ne marche pas ; voici le code que j'avais :

        for (i = 0 ; i < 6 ; i ++)
        {
        printf(usb_cdc_putc, "%lu \n\r", tableau[i]);
        if (greatest < tableau[i])
        {
        greatest = tableau[i];
        }
        }
      5. Contributeur
        A Char Snipeur,
        Oui c'est en effet accepté par C99, mais rare sont les compilateurs (d'ailleurs j'en connais pas) qui respectent entièrement la norme C99. Donc autant rester si possible en ANSI pour augmenter la portabilité.
        Mais t'as raison de préciser que c'est possible, tout comme plein d'autres joyeusetés.