Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1256 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Question pour les conditions et les variables

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Question pour les conditions et les variables

n°2219280
fuzzfactor
Cherche pc portable !
Posté le 11-02-2014 à 17:43:53  profilanswer
 

Salut à tous.
 
ça fait quelques jours que je me suis lancé dans la programmation en suivant ce petit tutoriel bien sympathique :  
http://fr.openclassrooms.com/infor [...] on-if-else
 
J'ai suivi tout le tuto dans l'ordre ( je me suis arrêter à la page des conditions ), mais je ne trouve pas réponse à mes questions.  
 
Effectivement, je viens d'apprendre à utiliser des données que l'utilisateur tape grâce à la fonction scanf ( pour une calculatrice par exemple ). J'aimerais faire de même avec des conditions ( if et tout ça ) mais il ne se passe rien. Voilà le code que j'ai mis :
 
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
 int age=0;
 printf("Entrez votre age :" );
 scanf("%d", &age);
 if (age >=18)
 {
  printf("Vous êtes majeur !" );
 }
  return 0;
}
 
Qu'est-ce qui ne vas pas ?  
 
Merci d'avance.

mood
Publicité
Posté le 11-02-2014 à 17:43:53  profilanswer
 

n°2219288
Farian
Posté le 11-02-2014 à 18:13:39  profilanswer
 

Bonsoir !
 
Il manque le "\n" dans le printf, la ligne a de bonnes chances de ne pas être affichée / être mal affichée.
 
Bonne continuation !

n°2219331
torwood3
Posté le 12-02-2014 à 08:43:14  profilanswer
 

Bonjour,
 
Ton code fonctionne, je ne vois pas trop ton soucis.
Après l'affichage c'est autre chose ^^"  
 
La question s'affiche ? Sur quoi tu compile ?


---------------
"La valeur d'un homme tient dans sa capacité à donner et non dans sa capacité à recevoir." Albert Einstein / "Dans la nature, tout a toujours une raison. Si tu comprends cette raison, tu n'as plus besoin de l'expérience." Léonard De Vinci
n°2219332
OrcusZ
Pro AMD | .Net lover
Posté le 12-02-2014 à 09:09:50  profilanswer
 

Bonjour,
 
Je crois que la question est qu'il voudrais faire un scanf seulement sous certain condition... En tout cas c'est ce que je comprends.
 
Sinon +1 pour le reste des commentaires, le code est correct tu ne devrais pas avoir de problème si tu met un age supérieur ou égal a 18.
 
Par contre si tu veux afficher une chaine de caractère si tu écrit un age inférieur il faut mettre un else ( sinon )
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(int argc, char *argv[])
  4. {
  5. int age=0;
  6. printf("Entrez votre age :" );
  7. scanf("%d", &age);
  8. if (age >=18)
  9. {
  10.   printf("Vous êtes majeur ! \n" );
  11. }
  12. else
  13. {
  14.    printf("Vous n'êtes pas majeur \n" ); //Phrase d'exemple
  15. }
  16.   return 0;
  17. }


---------------
Made you your own sentence without believing that of the others...
n°2219340
theshockwa​ve
I work at a firm named Koslow
Posté le 12-02-2014 à 11:07:58  profilanswer
 

ce serait pas mal de vérifier le code de retour de scanf, afin de t'assurer que l'utilisateur a bien entré une valeur telle que tu l'attends. Scanf te donne le nombre de paramètres qu'il a réussi à lire. Dans ton cas, vu que tu ne lis qu'une valeur, scanf te retournera 1 pour un succès et 0 pour un échec à lire un entier comme tu le demandes.


---------------
last.fm
n°2219395
fuzzfactor
Cherche pc portable !
Posté le 12-02-2014 à 17:40:39  profilanswer
 

Salut,  
 
Je pense que je me suis mal exprimé ^^. En fait, dans le tuto mentionné plus haut : http://fr.openclassrooms.com/infor [...] on-if-else . La condition " if " n'est applicable que si la variable ( de l'age dans le cas présent " est défini par le programmeur. J'aimerais pouvoir faire défénir la valeur de la variable par l'utilisateur ( avec la commande scanf ). J'ai donc essayer le code du dessus mais ça ne marche pas, quand j'entre l'âge il ne se passe rien....

n°2219403
OrcusZ
Pro AMD | .Net lover
Posté le 12-02-2014 à 19:32:36  profilanswer
 

Mon code fonctionne je l'ai tester cette après midi ^^
 
Et je viens de re-tester ça fonctionne -_-
 


---------------
Made you your own sentence without believing that of the others...
n°2219420
torwood3
Posté le 12-02-2014 à 21:49:03  profilanswer
 

+1 le code est fonctionnel.
 
Peux-tu nous expliquer comment tu le tests ? Avec un IDE ? lequel ?


---------------
"La valeur d'un homme tient dans sa capacité à donner et non dans sa capacité à recevoir." Albert Einstein / "Dans la nature, tout a toujours une raison. Si tu comprends cette raison, tu n'as plus besoin de l'expérience." Léonard De Vinci
n°2219429
fuzzfactor
Cherche pc portable !
Posté le 12-02-2014 à 22:19:10  profilanswer
 

Ben... wtf là, je suis sur code::blocks et je viens de retester, ça marche. La dernière fois ça s’arrêtait à " 18 " ( donc après avoir taper notre âge^^)
 
Sinon j'ai une question très importante :
 
Donc voilà j'ai récemment achevé le chapitre " calcul de base " qui nous apprends à faire des calculs. Là dessus j'ai eu l'idée de réaliser un petit programme tout con permettant de calculer son indice de Quételet. Cet indice nous sert juste à savoir si on est obèse, normale, trop maigre et tout ça. Pour trouver cet indice, un calcul tout con s'impose : notre poids divisé par notre taille au carré. Cepandant une fois sur code:blocks ... Bah c'est pas aussi simple que ça.  
 
#include <stdio.h>
 
#include <stdlib.h>
 
int main(int argc, char *argv[])
 
{
 
 int poids = 0; //déclaration variable nombre entier
 
 double taille = 0, indiceQuétel=0; //déclaration variable nombre décimale
 
 printf("Entrez votre poids :" ); //Je demande à l'utilisateur de doner son poids
 
 scanf("%d", &poids); //récupération de la saisie
 
 prinf("Entrez votre taille:" );
 
 scanf("%f", &taille); //récupération saisie nombre décimal.taille.
 
 //Ensuite il faut faire le calcul et là j'ai besoin d'aide :
 
 poids/taille²=indiceQuétel;
 
 printf("%d/%f²=%f", poids, taille, indiceQuétel);
 
 if (indiceQuétel >= 30)
 
 {
 
     printf("Vous êtes obèse" );
 
 }
 
 if (indiceQuétel > 25 &&indiceQuétel <30 )
 
 {
 
     printf("Vous êtes en léger excès de poids" );
 
 }
 
 if (indiceQuétel <17.5)
 
 {
 
     printf("Votre poids est insuffisant" );
 
 }
 
  return 0;
 
}
 
Voici le code que j'ai réalisé. Bon bien évidemment il marche pas. Mais j'ai l'impression que c'est pas trop mal partie, j'ai juste besoin de vos lumière pour clarifier quelques points :
1 : Dans les divisions il faut mettre le dividende et le diviseur en faux chiffre décimal ( 17.0  ), dans mon cas, c'est nécessaire ?
2 : Comment on fait des carrés ? J'ai rien vu à ce sujet
3 : à la fin dans les conditions, comment savoir le " if ... " s'applique au quotient du calcul ou à la variable telle que je l'ai déclaré ? ( Bon j'avoue là c'est flou )
4: Vous croyez que 15 ans c'est trop jeune pour programmer ?
Sinon, ce serrait SUPER sympas de votre part que vous corrigiez le code et que vous m'expliquiez mes erreurs, encore désolé si j'ai pas été clair...
Antoine.
PS : désolé des fautes, je ne suis pas un as du tout en orthographe.

n°2219432
OrcusZ
Pro AMD | .Net lover
Posté le 12-02-2014 à 22:28:02  profilanswer
 

Re,
 
Met ton code entre les balise cpp pour plus de lisibilité :)
 
1 : Tu met tout en double pour que ton cacul te donne les chiffre après la virgules
2 : une fonction te permet de faire ça pow(nombre, puissance);
3 : Pas compris xD
4 : Il est jamais trop tôt. Apprend a coder quand tu as le temps, ne met pas tes études de coté pour ça. Au moins si tu aime ça et que tu décide d'en faire ton métier tu aura déjà un bagage quand tu arrivera à l'école tu aura plus qu'a apprendre la logique informatique et les bonne habitude et tu sera major de ta promo :D
 


---------------
Made you your own sentence without believing that of the others...
mood
Publicité
Posté le 12-02-2014 à 22:28:02  profilanswer
 

n°2219446
gilou
Modérateur
Modzilla
Posté le 13-02-2014 à 03:42:22  profilanswer
 

Citation :

1 : Dans les divisions il faut mettre le dividende et le diviseur en faux chiffre décimal ( 17.0  ), dans mon cas, c'est nécessaire ?

ben déjà déclare aussi le poids comme un double, après tout sera en double et ça sera pas nécessaire du tout.  

Citation :

2 : Comment on fait des carrés ? J'ai rien vu à ce sujet

On multiplie le nombre par lui même.

Citation :

4: Vous croyez que 15 ans c'est trop jeune pour programmer ?

pas du tout.
 
Note: éviter les accents dans les variables C.
 
 
Grosso modo, ce que vous vouliez écrire, c'est:

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(int argc, char *argv[])
  4. {
  5.   double  poids, taille, indiceQuetel;
  6.   printf("Entrez votre poids :" );
  7.   scanf("%f", &poids);
  8.   prinf("Entrez votre taille:" );
  9.   scanf("%f", &taille);
  10.   indiceQuetel = poids/(taille * taille);
  11.   if (indiceQuetel >= 30) {
  12.     printf("Vous êtes obèse\n" );
  13.   }
  14.   else if (indiceQuetel > 25) {
  15.     printf("Vous êtes en léger excès de poids\n" );
  16.   }
  17.   else if (indiceQuetel < 17.5) {
  18.     printf("Votre poids est insuffisant\n" );
  19.   }
  20.   return 0;
  21. }

 
Trois petites remarques:
- si la ligne a imprimer d'un printf n'est pas terminée par un \n, il peut être judicieux de faire fflush(STDOUT); ensuite
- Penser a vérifier que scanf a bien converti quelque chose.  
   Note: scanf c'est très très peu adapté a lire les données d'une saisie par un utilisateur (souvent pas conformes à ce que l'on attend). Faire plutôt un getline, et scanner la ligne obtenue.  
- vérifier que la taille n'est pas nulle, parce que le programme ne va pas aimer une division par 0  (vérifier aussi que ce que l'on a reçu de l'utilisateur n'est pas négatif)
 
A+,


Message édité par gilou le 13-02-2014 à 03:48:40

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Question pour les conditions et les variables

 

Sujets relatifs
Les variables bases en C++Multiples variables dans "count" et "select" en XSL
question fermeture fenêtre (javascript-html)[RESOLU] syntaxe à utiliser pour une requête composé de variables
Question de Noob "Slideshow"Concaténation foireuse de 2 variables sous bash
Array, conversion[PHP] Upload multiples : variables ne passent pas si trop de volume
Question, longueur maximale pour poster ?Filtre avec contient des variables
Plus de sujets relatifs à : Question pour les conditions et les variables


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR