Langage C : revenir au début de la fonction

Résolu/Fermé
Novembra Messages postés 12 Date d'inscription vendredi 1 mars 2019 Statut Membre Dernière intervention 15 mars 2019 - Modifié le 14 mars 2019 à 15:27
Novembra Messages postés 12 Date d'inscription vendredi 1 mars 2019 Statut Membre Dernière intervention 15 mars 2019 - 15 mars 2019 à 12:28
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
A voir également:

1 réponse

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 14 mars 2019 à 15:53
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
Novembra Messages postés 12 Date d'inscription vendredi 1 mars 2019 Statut Membre Dernière intervention 15 mars 2019
Modifié le 14 mars 2019 à 16:03
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;

}
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
14 mars 2019 à 16:58
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.
0
Novembra Messages postés 12 Date d'inscription vendredi 1 mars 2019 Statut Membre Dernière intervention 15 mars 2019
15 mars 2019 à 12:28
ok Dal , je vais regarder ça, merci
0