S'abonner :  Newsletters    Magazines
Avis sur les produits Avis sur les logiciels Avis sur les jeux Actualités A propos de 01net
292 utilisateurs connectés

MIN ET MAX avecquatre variables

trypty le 10 février 2008 à 21h22
Bonjour,
je commence tout juste la programmation ainsi que le langage C/C++.
Pourriez-vous m'aider à trouver une solution à mon pb svp?
Voilà, je dois trouver le minimum et le maximum de quatre nombres qui seront saisis au clavier. Bien sûr, je ne dois pas utiliser de tableau car je ne l'ai pas encore vu.

Voici ce que j'ai fait pour deux variables et qui fonctionne très bien :

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
int a,b,c,d,n, min,max;//déclaration des variables
printf("Saisissez un premier nombre:\n", a);
scanf("%ld", &a);

printf("Saisissez un deuxieme nombre:\n", b);
scanf("%ld", &b);


min = (a<b) ? a:b;
max = (a>b) ? a:b;

printf("Le nombre le plus petit est : %ld\n", min);
printf("Le nombre le plus grand est: %ld\n",max);

system("PAUSE");
return EXIT_SUCCESS;
}


Pour mettre quatre nombres j'ai fait ce code mais la ligne max ne marche pas alors que min oui:

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
int a, b, c,d,min,max ; //déclaration des variables

printf("Saisissez un premier nombre : ", a);
scanf ("%ld", &a);

printf("Saisissez un deuxième nombre : ", b);
scanf ("%ld", &b);

printf("Saisissez un troisieme nombre : ", c);
scanf ("%ld", &c);

printf("Saisissez un quatrième nombre : ", d);
scanf ("%ld", &d);

min = ((a<b) ? a:b && (a<c) ? a:c && (a<d) ? a:d && (b<c) ? b:c && (b<d) ? b:d && (c<d) ? c:d);

max = (a>b) ? a:b && (a>c) ? a:c && (a>d) ? a:d && (b>c) ? b:c && (b>d) ? b:d && (c>d) ? c:d ;

printf("Le plus petit nombre est: %ld\n", min);
printf("Le plus grand nombre est: %ld\n", max);


system("PAUSE");
return EXIT_SUCCESS;
}


merci de m'apporter votre aide car je suis vraiment débutante et je ne vois pas pourquoi la ligne max ne veut pas marchait pour quatre nombres alors que pour deux oui.
-------
TRYPTY
Daniel_P le 11 février 2008 à 12h22
Salut,

j'ai remarqué que dans le Min ton instruction est entre des parenthèses qui englobe tout. Ton instruction pour le Max n'est pas entre des parenthèses qui englobe tout.

min = ((a<b) ? a:b && (a<c) ? a:c && (a<d) ? a:d && (b<c) ? b:c && (b<d) ? b:d && (c<d) ? c:d);

max = (a>b) ? a:b && (a>c) ? a:c && (a>d) ? a:d && (b>c) ? b:c && (b>d) ? b:d && (c>d) ? c:d ;

Peut-être que c'est à cause de ça ?
-->Message édité par Daniel_P le 11/02/2008 12:24:02<--
trypty le 11 février 2008 à 13h52
bonjour,
j'ai essayé avec les paranthèses qui englobent tout pour min et max mais rien à faire.
s'il existe une autre solution (sans l'utilisation des tableaux) je suis preneuse
-------
TRYPTY
Hyper MB le 16 février 2008 à 18h47
remplacer :
min = ((a<b) ? a:b && (a<c) ? a:c && (a<d) ? a:d && (b<c) ? b:c && (b<d) ? b:d && (c<d) ? c:d);
max = (a>b) ? a:b && (a>c) ? a:c && (a>d) ? a:d && (b>c) ? b:c && (b>d) ? b:d && (c>d) ? c:d ;
par :
min=(a<=b) ? a:b; min=(min<=c) ? min:c; min=(min<=d) ? min:d;
max=(a>=b) ? a:b; max=(max>=c) ? max:c; max=(max>=d) ? max:d;
et ca devrait marcher ...


PRODUITS

TÉLÉCHARGER - LOGICIELS

JEUX VIDÉOS

LOISIRS

01NET PRO

AVIS ET COMMENTAIRES

A PROPOS DE 01NET

publicité
> Test : Microsoft Security Essentials
La suite de sécurité gratuite de Microsoft !

Service 01net
Newsletters 01net
abonnez vous gratuitement !
  
01Informatique
01 INFORMATIQUE
L'hebdo de référence des décideurs informatiques.
Micro Hebdo
MICRO HEBDO
L'hebdo qui vous simplifie la micro
et Internet.
L'Ordinateur Individuel
L'ORDINATEUR INDIVIDUEL
Le mensuel informatique qui vous informe et vous conseille.
Nous contacter  |  Charte de confiance  |  Voir notice légale

01net.  -  01men  -  RMC  -  BFM Radio  -  BFM TV  -  TousLesPodcasts  -  01informatique.fr  -  Association RMC-BFM
Tous droits réservés © 1999 - 2009 Internext - 01net.