Question pour les conditions et les variables - C - Programmation
Marsh Posté le 11-02-2014 à 18:13:39
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 !
Marsh Posté le 12-02-2014 à 08:43:14
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 ?
Marsh Posté le 12-02-2014 à 09:09:50
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 :
|
Marsh Posté le 12-02-2014 à 11:07:58
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.
Marsh Posté le 12-02-2014 à 17:40:39
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....
Marsh Posté le 12-02-2014 à 19:32:36
Mon code fonctionne je l'ai tester cette après midi ^^
Et je viens de re-tester ça fonctionne -_-
Marsh Posté le 12-02-2014 à 21:49:03
+1 le code est fonctionnel.
Peux-tu nous expliquer comment tu le tests ? Avec un IDE ? lequel ?
Marsh Posté le 12-02-2014 à 22:19:10
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.
Marsh Posté le 12-02-2014 à 22:28:02
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
Marsh Posté le 13-02-2014 à 03:42:22
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 :
|
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+,
Marsh Posté le 11-02-2014 à 17:43:53
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.