Langage C : revenir au début de la fonction [Résolu/Fermé]

Signaler
Messages postés
12
Date d'inscription
vendredi 1 mars 2019
Statut
Membre
Dernière intervention
15 mars 2019
-
Messages postés
12
Date d'inscription
vendredi 1 mars 2019
Statut
Membre
Dernière intervention
15 mars 2019
-
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 :


#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

Messages postés
5383
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
10 juillet 2020
884
Salut Novembra,

Ta boucle
while
doit être à l'intérieur de ta fonction
main()
. Tu ne peux pas mettre des instructions C destinées à être exécutées par le programme en dehors de la fonction
main()
, 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 boucle
while
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'écrire
while (1) { (...) }
, car tout entier autre que 0 sera considéré par le C comme signifiant "vrai".

Dal
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 61508 internautes nous ont dit merci ce mois-ci

Messages postés
12
Date d'inscription
vendredi 1 mars 2019
Statut
Membre
Dernière intervention
15 mars 2019

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;

}
Messages postés
5383
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
10 juillet 2020
884
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.
Messages postés
12
Date d'inscription
vendredi 1 mars 2019
Statut
Membre
Dernière intervention
15 mars 2019

ok Dal , je vais regarder ça, merci