Menu

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

Messages postés
12
Date d'inscription
vendredi 1 mars 2019
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
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
4998
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
22 mars 2019
916
1
Merci
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

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 47519 internautes nous ont dit merci ce mois-ci

Novembra
Messages postés
12
Date d'inscription
vendredi 1 mars 2019
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;

}
[Dal]
Messages postés
4998
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
22 mars 2019
916 -
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.
Novembra
Messages postés
12
Date d'inscription
vendredi 1 mars 2019
Dernière intervention
15 mars 2019
-
ok Dal , je vais regarder ça, merci
Commenter la réponse de [Dal]