Valeur min et max
Résolu
Bonsoir,
J'ai un problème avec mon programme en C++
voilà le problème du sujet, je dois entrer x valeurs et quand je mets 0 il arrête de lire et il doit trouver dans les x valeurs le minimum et le maximum
voilà mon programme
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
int x; //les nombres
int min;
int max;
cout<<"Choisir des nombres x et terminer par 0 pour arrêter :"<<endl;
while((x=cin.get()) !='0')
{
if(x>max)
max=x;
if(x<min)
min=x;
}
cout<<"Le plu petit est "<<min<<endl;
cout<<"Le plus grand est "<<max<<endl;
return(0)
}
le programme marche mais je ne trouve par les valeurs max et min
j'ai mis par exemple 35, 34,36,37,38 puis 0 pour arrêter
et il met
le plus petit est 0
le plus grand est 56
alors je ne comprends pas trop là
quelu'un pourrait m'aider à comprendre ce problème
merci à ceux qui m'aider
J'ai un problème avec mon programme en C++
voilà le problème du sujet, je dois entrer x valeurs et quand je mets 0 il arrête de lire et il doit trouver dans les x valeurs le minimum et le maximum
voilà mon programme
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
int x; //les nombres
int min;
int max;
cout<<"Choisir des nombres x et terminer par 0 pour arrêter :"<<endl;
while((x=cin.get()) !='0')
{
if(x>max)
max=x;
if(x<min)
min=x;
}
cout<<"Le plu petit est "<<min<<endl;
cout<<"Le plus grand est "<<max<<endl;
return(0)
}
le programme marche mais je ne trouve par les valeurs max et min
j'ai mis par exemple 35, 34,36,37,38 puis 0 pour arrêter
et il met
le plus petit est 0
le plus grand est 56
alors je ne comprends pas trop là
quelu'un pourrait m'aider à comprendre ce problème
merci à ceux qui m'aider
A voir également:
- Valeur min et max
- Maj to min - Guide
- Driver max - Télécharger - Pilotes & Matériel
- I14 pro max - Accueil - Guide téléphones
- Faites afficher avec un fond coloré les cellules qui contiennent une valeur comprise entre 250 et 350. quel nombre est dessiné en surbrillance ? ✓ - Forum Excel
- Valeur relative et absolue - Forum Excel
3 réponses
Pas de parenthèse autour du 0 de return 0; (return n'est pas une fonction, donc pas besoin de parenthèse). Ici tu as un problème car tu compare x à deux variables non initialisées, donc par défaut initialisées à 0 toutes les deux.
Ce qui donne :
Quelques recommandations :
- compile avec les options de warning (-W -Wall pour g++), ton compilateur aurait dû te prévenir que ces variables pouvait être évaluées sans être initialisées :
- pense à initialiser tes variablesquand c'est nécessaire
- évite d'utiliser des headers non standard (par exemple #include "stdafx.h" )
- évite d'utiliser l'instruction "using namespace std;". Si dans un fichier source (.cpp) c'est indolore il ne faut pas l'utiliser dans un header (.hpp). En effet le namespace std:: sert à éviter les conflits entre les classes de la STL et les classes que tu peux éventuellement utiliser par ailleurs.
Bonne chance
#include <iostream>
int main(){
int x;
std::cout << "x ? ";
std::cin >> x;
int min = x,max = x;
while(x){
std::cout << "x ? ";
std::cin >> x;
if(x != 0){
min = min < x ? min : x;
max = max > x ? max : x;
}
}
std::cout << "min = " << min << " max = " << max << std::endl;
return 0;
}
Ce qui donne :
x ? 5 x ? 2 x ? 8 x ? 0 min = 2 max = 8
Quelques recommandations :
- compile avec les options de warning (-W -Wall pour g++), ton compilateur aurait dû te prévenir que ces variables pouvait être évaluées sans être initialisées :
- pense à initialiser tes variablesquand c'est nécessaire
- évite d'utiliser des headers non standard (par exemple #include "stdafx.h" )
- évite d'utiliser l'instruction "using namespace std;". Si dans un fichier source (.cpp) c'est indolore il ne faut pas l'utiliser dans un header (.hpp). En effet le namespace std:: sert à éviter les conflits entre les classes de la STL et les classes que tu peux éventuellement utiliser par ailleurs.
Bonne chance
Merci mamiemando pour l'aider
j'ai changé et tous est ça marche bien avec "using namespace std" mais j'ai pas fais avec tes recommandaions car j'ai pas encore appris avec les options warning ^^, mais merci pour le coude de main maitenant j'ai compris
Merci
j'ai changé et tous est ça marche bien avec "using namespace std" mais j'ai pas fais avec tes recommandaions car j'ai pas encore appris avec les options warning ^^, mais merci pour le coude de main maitenant j'ai compris
Merci
Ca s'apprend pas c'est juste une option de compilation. Par exemple avec gcc ça consiste à taper :
au lieu de :
Au risque d'insister je t'incite vraiment à chercher comment on active les warning pour te discipliner à programmer correctement, surtout au début. Mais bon si ça marche c'est l'essentiel. Au passage je n'ai pas compris pourquoi tu incluais "stdafx.h" car ici il ne sert à rien (à part empêcher de compiler sous linux). Bref tu peux le virer sans risque et normalement ça devrait compiler sans problème.
Bonne chance
gcc -W -Wall -o plop.exe plop.c
au lieu de :
gcc -o plop.exe plop.c
Au risque d'insister je t'incite vraiment à chercher comment on active les warning pour te discipliner à programmer correctement, surtout au début. Mais bon si ça marche c'est l'essentiel. Au passage je n'ai pas compris pourquoi tu incluais "stdafx.h" car ici il ne sert à rien (à part empêcher de compiler sous linux). Bref tu peux le virer sans risque et normalement ça devrait compiler sans problème.
Bonne chance