Fonction min

[Fermé]
Signaler
-
Messages postés
11
Date d'inscription
lundi 24 avril 2017
Statut
Membre
Dernière intervention
20 septembre 2017
-
Bonjour,

bonjour je cherche programme dev c++ fonction qui determine le Min de
4 valeurs

A voir également:

2 réponses

Messages postés
4761
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
23 octobre 2020
1 266
'lut,
il suffit de réfléchir un petit peu. Sachant que le min de 4 valeurs c'est le min du min des 2 premières et du min des 2 dernières...
Messages postés
5583
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
9 juillet 2021
942
Salut ElementW,

Si la fonction doit prendre 4 valeurs en paramètres et déterminer le plus petit, j'ajouterai que comme la fonction min() acceptant deux valeurs n'existe pas en C standard, il faudra la faire pour suivre ta suggestion.

Elle existe en C++ (sous la forme d'un template de fonction), mais pas en C standard.

Sinon, pour 4 valeurs, on pourrait se contenter de les comparer séquentiellement (on duplique un peu de code, avec des if successifs, mais ce ne sont que 4 valeurs ;-), et on évite de faire une sous-fonction.

A plus forte raison si les données sont contenues dans une structure de données passée à la fonction, sur laquelle on peut faire des itérations (un tableau), et là plus de duplication (l'énoncé ne précise pas comment sont passées les "valeurs" à comparer à la fonction).


Dal
Messages postés
11
Date d'inscription
lundi 24 avril 2017
Statut
Membre
Dernière intervention
20 septembre 2017

#include <stdio.h> 
#include <stdlib.h> 
#include <conio.h> 

/////////////FONCTION QUI TE DONNE LE MINIMUM/////////////////// 

int minimum(int a,int b, int c, int d) 
{ 
int min; 
min=a; 
if(b<min) 
{ 
min=b; 
} 
if(c<min) 
{ 
min=c; 
} 
if(d<min) 
{ 
min=d; 
} 

return min; 
} 

////////////////PROGRAMME PRINCIPAL/////////////////////////// 

int main() 
{ 
printf("\n\nLe minimum est %d",minimum(20,15,00,-89)); 
return 0; 
}
Messages postés
5583
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
9 juillet 2021
942
salut einstein66, bienvenue sur le forum !

ton code est une illustration de tests séquentiels qui fonctionne :-)

#include <stdlib.h>
et
#include <conio.h>
sont en trop, et il est mieux de terminer ses printf par un
\n
, même si cela est sans conséquences dans ton cas.

Puisqu'on en est à donner du code, en voilà un autre, inspiré d'une contribution d'un autre membre du forum, dans un autre topic, avec une succession d'opérateurs ternaires imbriqués :
#include <stdio.h>

int minimum(int a,int b, int c, int d) {
    return a < b ? a : b < c ? b : c < d ? c : d;
}

int main(void) {
    printf("Le minimum est %d\n", 
            minimum(20, 15, -180, -89));
    return 0;
}
Cela se lit de droite à gauche, et cela fonctionne sans variable intermédiaire, ni fonction intermédiaire de type
min()
de comparaison deux à deux.

Sinon, sur le fait de poster du code, comme la question posée ressemblait à une demande d'aide aux devoirs, sur le forum on préfère habituellement donner des indications ou du code illustratif d'axes de recherche, ou d'inviter la personne posant la question à poster son propre code qui lui pose problème, plutôt que de donner une solution toute faite faisant tout le travail à la place de la personne posant la question, ce qui ne l'aide pas forcément d'un point de vue pédagogique.

Dal

P.S : C'est super d'avoir reposté ton code avec les balises. Lorsque tu copies-colles depuis ton IDE ou ton éditeur, tu verras que l'indentation sera aussi préservée (là je suppose que tu as copié-collé depuis le navigateur, dont le html écrase malheureusement les espaces consécutifs, qui n'ont pas été copiés).
Messages postés
11
Date d'inscription
lundi 24 avril 2017
Statut
Membre
Dernière intervention
20 septembre 2017
>
Messages postés
5583
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
9 juillet 2021

Merci Dal