A l'aide sur le boucle for

kamal92 Messages postés 4 Statut Membre -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour, j'ai un petit souci svp!!!je veux faire un programme qui demande a l'utilisateur de saisir un nombre et d'afficher les etoiles(****) avec le boucle for.mon probleme est surtout au niveau de la condition.merci

6 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Pour lire la valeur de l'utilisateur il suffit d'utiliser scanf.
    Pour écrire quelque chose tu peux utiliser printf.

    Comme tu le vois dans les pages de man il faut inclure <stdio.h> :
    http://www.linux-france.org/article/man-fr/man3/scanf-3.html
    http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/sprintf.3.html

    Exemple :

    int main() {
      int n;
      printf("n ?\n");
      scanf("%d", &n);
      printf("n = %d\n", n);
      return 0;
    }


    Ensuite il faut écrire un certain nombre d'étoiles. J'imagine que si tu saisis la valeur 5 pour n, tu veux écrire 5 étoiles. Il suffit donc d'écrire une étoile, de compter cette étoile, et de répéter jusqu'à avoir compté 5 étoiles.

    Une boucle for se décompose en trois parties, chacune séparée par des points virgules, et chacune optionnelle
    - l'initialisation : une suite d'instructions, séparées par des virgules
    - la condition d'arrêt : l'arrêt est déclenché quand on redémarre la boucle si l'opération calculée vaut 0 ou NULL
    - la phase de post intructions, chaque instruction étant séparées par des virgules, et qui sont déclenchées quand on atteint la fin de la boucle for (ie l'accolade fermante).

    Par exemple pour compter de 0 à 9 (soit 10 itérations) on peut écrire :

    for(i = 0; i < 10; i++) {
      // instructions répétées
    }


    Comme je le disais on peut aussi imaginer des boucles comme ceci (ceci équivaut à while(true) { ...} ) :

    for( ; ; ) {
      // instructions répétées indéfiniment
    }


    ... ou avec plusieurs instructions dans la 1ere et la 3e parties de la boucle :

    for(i = 0, j = 10; i < 10 && j > 3; i++, j--) {
      // instructions
    }


    Si tu as bien compris tout ça, écrire ta boucle for devrait être simple...

    Bonne chance
    0
  2. kamal92 Messages postés 4 Statut Membre
     
    justement,mais lorsque je fais tout cela avc le for (i=o;i<10;i++) il demande a l'utilisateur de donner un nombre et lui affiche 10 etoiles.je sais pas pour quoi???
    0
  3. Johann74270
     
    Et si tu nous passais ton code ?
    0
  4. kamal92 Messages postés 4 Statut Membre
     
    excuse moi quel code????
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Dans ta boucle for, il faut mettre la variable entrée par l'utilisateur (et non 10 statiquement)
    0
  7. kamal92 Messages postés 4 Statut Membre
     
    mais justement l'utilisateur saisi nimporte quel chiffre je ne sais quoi mettre
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      je ne sais quoi mettre
      La variable...
      int i;
      int n;
      scanf ("% d", &n);
      for (i=0; i < n; i++)
      ...
      0