Langage C : revenir au début de la fonction
Résolu
Novembra
Messages postés
12
Statut
Membre
-
Novembra Messages postés 12 Statut Membre -
Novembra Messages postés 12 Statut Membre -
Bonjour, cette question va surement vous paraître bête mais j'ai beau regarder mes cours sur les boucles, je n'arrive pas à en faire une. Par exemple sur ce petit code simple, j'aimerais y ajouter un while pour que quand l'utilisateur arrive à la fin du programme, ce dernier ne se ferme pas mais recommence au départ.
Voici le code :
J'ai essayé ça ou d'autres combinaisons mais rien à faire :
Je ne comprend pas ou mettre le while pour que le programme recommence à zéro.
Si vous avez une piste je suis preneur
Merci par avance
Voici le code :
#include <stdio.h>
#include <stdlib.h>
int main()
{
int age = 0;
printf("donnez votre age : ");
scanf("%d", &age);
printf("vous avez %d ans\n\n", age);
if (age >= 18) { printf ("Vous etes majeur !"); }
if (age < 18) { printf ("Vous etes mineur !"); }
return 0;
}
J'ai essayé ça ou d'autres combinaisons mais rien à faire :
#include <stdio.h>
#include <stdlib.h>
while ()
{
int main()
{
int age = 0;
printf("donnez votre age : ");
scanf("%d", &age);
printf("vous avez %d ans\n\n", age);
if (age >= 18) { printf ("Vous etes majeur !"); }
if (age < 18) { printf ("Vous etes mineur !"); }
return 0;
}
}
Je ne comprend pas ou mettre le while pour que le programme recommence à zéro.
Si vous avez une piste je suis preneur
Merci par avance
1 réponse
-
Salut Novembra,
Ta bouclewhile
doit être à l'intérieur de ta fonctionmain()
. Tu ne peux pas mettre des instructions C destinées à être exécutées par le programme en dehors de la fonctionmain()
, qui est le point d'entrée du programme C ou d'une autre fonction exécutée par le programme.
En dehors des fonctions, tu peux mettre des#define
,#include
ou autres directives destinées au préprocesseur, des prototypes, des déclarations de type ou des variables globales, mais pas des instructions destinées à être exécutées.
Ensuite, pour que ta bouclewhile
répète quelque chose, il faut que la condition évaluée entre les parenthèses soit vraie, ou en tout cas soit évaluée à quelque chose qui signifie "vrai".
Une façon habituelle, en C, de faire une boucle qui se répète à l'infini est d'écrirewhile (1) { (...) }, car tout entier autre que 0 sera considéré par le C comme signifiant "vrai".
Dal-
Merci encore Dal, je commence doucement à comprendre, je vais essayer avec les do… while, for. Tout ceci est encore du Chinois pour moi
Voilà donc ce que je trouve, et ça fonctionne :
#include <stdio.h> #include <stdlib.h> int main() { while (1) { int age = 0; printf("donnez votre age : "); scanf("%d", &age); printf("vous avez %d ans\n\n", age); if (age >= 18) { printf ("Vous etes majeur !"); } if (age < 18) { printf ("Vous etes mineur !"); } } return 0; } -
Pas de problème :-)
Tu devrais adopter un style d'indentation et t'y tenir, quel qu'il soit :
https://fr.wikipedia.org/wiki/Style_d'indentation
C'est de la pure forme, mais cela va améliorer la lisibilité de ton code pour toi même (et, accessoirement, pour ceux qui te lisent) et t'aider à corriger les bogues aussi, sinon dès que ton code dépassera quelques dizaines de lignes, il sera très difficilement lisible.
Si tu utilises un EDI pour programmer (ou un éditeur conçu pour la programmation), il devrait t'aider à formater correctement ton code. -
-