Max,min en c [Fermé]

Signaler
Messages postés
1
Date d'inscription
dimanche 13 novembre 2005
Statut
Membre
Dernière intervention
13 novembre 2005
-
 ubu -
svp quelle est la fonction qui donne le max et min en languge c

3 réponses

si tu veux, tu as aussi :

max(a,b) = (a + b + |a-b| ) / 2
min(a,b) = (a + b - |a-b| ) / 2


mais sinon il faut que tu te fasses un #define (je crois)
6
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 82887 internautes nous ont dit merci ce mois-ci

Messages postés
29130
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
18 janvier 2020
6 745
Et bien si tu utilises la stl c'est upper_bound et lower_bound.

http://www.sgi.com/tech/stl/upper_bound.html
http://www.sgi.com/tech/stl/lower_bound.html

Seul pb c'est plus du c++ que du c. En c++ tu as aussi les classes set et multiset qui sont bien pratiques.

Pour du c pur, il faut réecrire la fonction, ce qui est quand même assez trivial :

int min(int *tab,unsigned int taille){
  unsigned int i;
  int min=tab[0];
  for(i=1;i<taille;++i){
     if (tab[i]<min){
        min=tab[i];
     }
  }
  return min;
}


Bonne chance
Messages postés
29130
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
18 janvier 2020
6 745
Tu peux le faire avec un #define mais pas obligatoirement. La syntaxe change, et dans la version #define, c'est changé par le précompilateur à chaque occurence de min et de max trouvé. Ca ressemble un peu au inline du c++ (comprendre par là que les fonction de ce type doivent être de taille raisonnable).

Bonne chance
La norme C99 défini les fonctions fmin et fmax qui retournent le minimum et le maximum de 2 doubles en entrée.
Pour un tableau, la meilleure méthode est encore la première solution donnée.
On peut envisager de faire un tri (qsort de la stdlib) mais c'est un peu lourd surtout si le tableau est gros.