Programme console C
vh_77
Messages postés
207
Date d'inscription
Statut
Membre
Dernière intervention
-
HACKER 712 Messages postés 1282 Date d'inscription Statut Contributeur Dernière intervention -
HACKER 712 Messages postés 1282 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, je m'entraîne depuis hier au site du zéro à faire des programmes, des petits car je veux apprendre le C.
Voici mon code et je vous expliquerais mon problème plus tard.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long age = 0;
printf ("quel age avez vous ? \n\n");
scanf ("%ld", &age);
if (age >=18)
{
printf ("vous etes majeur ! \n\n");
}
else if (age > 10)
{
printf ("vous ete mineur ! il ne te reste plus que 1 an\n\n");
}
else
{
printf (" c est dommage tu es beaucoup trop jeune ! ! ! \n\n");
}
system ("PAUSE");
return 0;
}
Mon problème est que je voudrais que quand par exemple la console s'ouvre :
j'entre le nombre 18 ===> il y a marquer " vous etes majeur"
j'entre le nombre 17 ===> il y a marquer "vous etes mineur ! il ne vous reste plus que 1 an"
j'entre le nombre 16====> il y a marquer"vous etes mineur ! il ne vous reste plus que 1 an"
Voila je voudrais faire en sorte par exemple si je met 16 ans il y a marquer il ne vous reste plus que 2 ans et chaque autre nombre que je taperais ce serait la même chose mais comment ?
Voici mon code et je vous expliquerais mon problème plus tard.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long age = 0;
printf ("quel age avez vous ? \n\n");
scanf ("%ld", &age);
if (age >=18)
{
printf ("vous etes majeur ! \n\n");
}
else if (age > 10)
{
printf ("vous ete mineur ! il ne te reste plus que 1 an\n\n");
}
else
{
printf (" c est dommage tu es beaucoup trop jeune ! ! ! \n\n");
}
system ("PAUSE");
return 0;
}
Mon problème est que je voudrais que quand par exemple la console s'ouvre :
j'entre le nombre 18 ===> il y a marquer " vous etes majeur"
j'entre le nombre 17 ===> il y a marquer "vous etes mineur ! il ne vous reste plus que 1 an"
j'entre le nombre 16====> il y a marquer"vous etes mineur ! il ne vous reste plus que 1 an"
Voila je voudrais faire en sorte par exemple si je met 16 ans il y a marquer il ne vous reste plus que 2 ans et chaque autre nombre que je taperais ce serait la même chose mais comment ?
A voir également:
- Programme console C
- Programme demarrage windows - Guide
- Test console steam deck - Guide
- Console action - Accueil - Jeu vidéo
- Message programmé iphone - Guide
- Console mac - Guide
43 réponses
Juste un truc en passant : mettre un \n à la fin du printf pour forcer l'affichage.
Et pas besoin d'un long pour un âge, un unsigned int voire un short suffit amplement.
oui yakari, mais la c juste pour l'exemple de la condition, et puis de nos jours, on est plus à l'octet près....
Non ???
Son programme, c'est pas non plus Windows 7 !
Au fait, %i, c'est pareil que %id, et ca marche aussi
Et pas besoin d'un long pour un âge, un unsigned int voire un short suffit amplement.
oui yakari, mais la c juste pour l'exemple de la condition, et puis de nos jours, on est plus à l'octet près....
Non ???
Son programme, c'est pas non plus Windows 7 !
Au fait, %i, c'est pareil que %id, et ca marche aussi
salut !
tu peux faire un simple
long reste = 18 - age;
if(reste > 0)
printf("Il ne te reste plus que %i ans avant d'être majeur", reste);
else if(reste <= 0)
printf("C bon tu es majeur !, trace ta route !");
met bien <= car si il a 18 il est maj !
tu peux faire un simple
long reste = 18 - age;
if(reste > 0)
printf("Il ne te reste plus que %i ans avant d'être majeur", reste);
else if(reste <= 0)
printf("C bon tu es majeur !, trace ta route !");
met bien <= car si il a 18 il est maj !
Salut,
Juste un truc en passant : mettre un \n à la fin du printf pour forcer l'affichage.
Et pas besoin d'un long pour un âge, un unsigned int voire un short suffit amplement.
Yakari
Juste un truc en passant : mettre un \n à la fin du printf pour forcer l'affichage.
Et pas besoin d'un long pour un âge, un unsigned int voire un short suffit amplement.
Yakari
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon bah voila c'est bon :
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long age = 0;
printf ("quel age avez vous ? \n\n ");
scanf ("%ld", &age);
long reste = 18 - age;
if (reste > 0)
printf ("il ne te reste plus que %ld ans avant d etre majeur\n\n", reste);
else if (reste <= 0)
printf ("C bon \n\n");
system ("PAUSE");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long age = 0;
printf ("quel age avez vous ? \n\n ");
scanf ("%ld", &age);
long reste = 18 - age;
if (reste > 0)
printf ("il ne te reste plus que %ld ans avant d etre majeur\n\n", reste);
else if (reste <= 0)
printf ("C bon \n\n");
system ("PAUSE");
return 0;
}
je ne sais pas les differences, mais moi jutilise %i et ca marche tres bien...
sur le SDZ, il te dient %ld eh bien moi je fais %i... c une question d'habitude.
va voir le "man printf" dans google
sur le SDZ, il te dient %ld eh bien moi je fais %i... c une question d'habitude.
va voir le "man printf" dans google
bah je te remerci pour ta réponse d'avant.
Est-ce que tu as utiliser ta logique c'est a dire pour toi sa te sembler logique d'avoir fait 18 - age ?
et pas besoin de mettre else if (reste <= 0) car j'ai essayer sans et ça marche
Est-ce que tu as utiliser ta logique c'est a dire pour toi sa te sembler logique d'avoir fait 18 - age ?
et pas besoin de mettre else if (reste <= 0) car j'ai essayer sans et ça marche
Est-ce que tu as utiliser ta logique c'est a dire pour toi sa te sembler logique d'avoir fait 18 - age ?
comment ca ???
si tu t'inquietes de ne pas avoir les capacités, ne t'inquietes pas, c le debut !!!
tu ne feras pas un prog sans te poser une question, et te dire, "comment ca se fait ca ???
- j'ai fait ca
- j'ai fais ci
j'ai tout fais !
et non, tu n'as pas tout fais....
C'est l'habitude !
tu aurais pu te dire, tiens je vais faire un long switch
Tu aurais pu te dire, tiens je vais faire comme ca :
if(age == 1)
printf("il te reste 17 ans avant d'etre majeur")
if(age == 2)
printf("il te reste 16 ans avant d'etre majeur")
if(age == 3)
printf("il te reste 15 ans avant d'etre majeur")
if(age == 4)
printf("il te reste 14 ans avant d'etre majeur")
et puis ca fait pas pro, tu te dis tiens je vais faire un long switch !
et puis ca non plus ca va pas...
et tu te dis, tiens c un poil trop long.....
et si on raccourcicait ? Oui mais comment ? Et la tu reflechis, et tu trouves une nouvelle solution.
Désormais tu te dis, a chaque fois que j'ai ce probleme, je ferais comme ca.
je crois que c'est comme ca que j'ai ecris cette solution, je n'ai pas reflechit, c comme ca, quand g ce probleme, je fais ca...
Ca viendra tu verras !
comment ca ???
si tu t'inquietes de ne pas avoir les capacités, ne t'inquietes pas, c le debut !!!
tu ne feras pas un prog sans te poser une question, et te dire, "comment ca se fait ca ???
- j'ai fait ca
- j'ai fais ci
j'ai tout fais !
et non, tu n'as pas tout fais....
C'est l'habitude !
tu aurais pu te dire, tiens je vais faire un long switch
Tu aurais pu te dire, tiens je vais faire comme ca :
if(age == 1)
printf("il te reste 17 ans avant d'etre majeur")
if(age == 2)
printf("il te reste 16 ans avant d'etre majeur")
if(age == 3)
printf("il te reste 15 ans avant d'etre majeur")
if(age == 4)
printf("il te reste 14 ans avant d'etre majeur")
et puis ca fait pas pro, tu te dis tiens je vais faire un long switch !
et puis ca non plus ca va pas...
et tu te dis, tiens c un poil trop long.....
et si on raccourcicait ? Oui mais comment ? Et la tu reflechis, et tu trouves une nouvelle solution.
Désormais tu te dis, a chaque fois que j'ai ce probleme, je ferais comme ca.
je crois que c'est comme ca que j'ai ecris cette solution, je n'ai pas reflechit, c comme ca, quand g ce probleme, je fais ca...
Ca viendra tu verras !
T'es trop intelligent
celle la on me l'a jamais faite...
bon, encore une fois, c'est NORMAL !
depuis combien de temps apprends-tu ???
celle la on me l'a jamais faite...
bon, encore une fois, c'est NORMAL !
depuis combien de temps apprends-tu ???
depuis hier et je ne comprend pas pourquoi tu as fais if (reste > 0) si tu pourrai mieux m'espliquer merci
en fait, le reste vaut 18 - age
il vaut donc un nombre, positif ou non.
negatif si lutilisateur a plus de 18 car 18 - 18 = 0; non ? et 18 - 19 = -1
positif si lutilisateur a moins de 18 car 18 - 6 = 12;
donc si l'utilisateur a 18 ou plus, reste vaudra 0 ou moins.
donc je teste si ce reste vaut + de 0
pour lui dire combien il lui reste.
si ce nombre est negatif ou egal a zero, il est majeur.
donc met bien if(reste > 0)
et if(reste <= 0)
compris ???
il vaut donc un nombre, positif ou non.
negatif si lutilisateur a plus de 18 car 18 - 18 = 0; non ? et 18 - 19 = -1
positif si lutilisateur a moins de 18 car 18 - 6 = 12;
donc si l'utilisateur a 18 ou plus, reste vaudra 0 ou moins.
donc je teste si ce reste vaut + de 0
pour lui dire combien il lui reste.
si ce nombre est negatif ou egal a zero, il est majeur.
donc met bien if(reste > 0)
et if(reste <= 0)
compris ???
donc en faite il y a 2 condition une if pour dire a condition que le reste est plus grand que 0 celle la j'ai compris car exemple 18 - 10 = 8 donc plus grand que 0
et la deuxieme condition if pour dire reste plus petit ou egale c'est a dire 18 - 20 = -2 j'ai compris mais pourquoi le ou egale ?
et la deuxieme condition if pour dire reste plus petit ou egale c'est a dire 18 - 20 = -2 j'ai compris mais pourquoi le ou egale ?
Salut
* a propos du %d ca se compose de 3 parties :
= le % ca indique au programme (disons pour le moment !!!!!!!!!!!!) qu'il est entrain de manipuler une variable (remarque q'elle existe en printf est scanf )
=2é partie :ce qui est entre % et le type (d ou s ou f ....tu le saura qqe lignes en bes ) et c'est specifique à l'ecriture sur l'ecran et ca indique le nombre de cases reserves a cette variable
= 3é partie le format que son appelation differre entre les normes (ANSI ,C99,C89) ce sont des details avences que tu peut les negliger en tant que debutant
** Ensuite concernant les declarations "yakari" a parfaitement raison : il faut avoir les bonnes bases des le debut .... tu ne saisie pas la difference entre utiliser un int ou un short en ce stade ? C'EST PARFAITEMENT NORMAL Mais (keep it on mind ) ##je parle mal francais :-) #
***printf(" un bon programmeur est %d d'experience et %d de competences innes \n",100,1);
NB : TOUTE QUESTION EST LE BIENVENU (sur le mail personel dans le profil)
:-)
* a propos du %d ca se compose de 3 parties :
= le % ca indique au programme (disons pour le moment !!!!!!!!!!!!) qu'il est entrain de manipuler une variable (remarque q'elle existe en printf est scanf )
=2é partie :ce qui est entre % et le type (d ou s ou f ....tu le saura qqe lignes en bes ) et c'est specifique à l'ecriture sur l'ecran et ca indique le nombre de cases reserves a cette variable
= 3é partie le format que son appelation differre entre les normes (ANSI ,C99,C89) ce sont des details avences que tu peut les negliger en tant que debutant
** Ensuite concernant les declarations "yakari" a parfaitement raison : il faut avoir les bonnes bases des le debut .... tu ne saisie pas la difference entre utiliser un int ou un short en ce stade ? C'EST PARFAITEMENT NORMAL Mais (keep it on mind ) ##je parle mal francais :-) #
***printf(" un bon programmeur est %d d'experience et %d de competences innes \n",100,1);
NB : TOUTE QUESTION EST LE BIENVENU (sur le mail personel dans le profil)
:-)
Pour ce genre de problème effectivement, on est pas à un octet près...
Mais si on veut faire de la programmation pour construire de plus gros projets, alors il faut quand même faire attention à ce que l'on déclare. De plus il peut arriver que l'on vienne à écrire des programmes pour des architectures autre que des Pc de bureau : les systèmes embarqués qui représentent en population, bien plus que les ordinateurs classiques.
Personnellement, je fais de la programmation embarquée et scientifique, dans le premier cas, je suis amené à travailler avec des architectures qui peuvent être réduite à environ 300 octets de RAM, et dans le second cas, en scientifique, il n'est pas rare d'allouer les nombres par paquets de centaines de milliers. En conclusion, à partir d'un certain niveau de difficultés dans les projets, il faut faire attention à ce que l'on alloue et ce que l'on libère : conclusion : autant prendre de bonnes habitudes dès le début ;)
Yakari
Au fait, %i, c'est pareil que %id, et ca marche aussi
%id ça ne marche pas. Et %ld ce n'est pas pareil que %i.
%i c'est pareil que %d. C'est tout. Si tu as une variable en long, tu dois mettre %li ou %ld.
En compilation stricte (respect des normes), tu recevras un avertissement à la compilation.
Cdlt