A l'aide sur le boucle for

Fermé
kamal92 Messages postés 4 Date d'inscription jeudi 14 février 2013 Statut Membre Dernière intervention 14 février 2013 - 14 févr. 2013 à 01:18
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 14 févr. 2013 à 19:05
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



A voir également:

6 réponses

mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
14 févr. 2013 à 01:42
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
kamal92 Messages postés 4 Date d'inscription jeudi 14 février 2013 Statut Membre Dernière intervention 14 février 2013
14 févr. 2013 à 13:49
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
Et si tu nous passais ton code ?
0
kamal92 Messages postés 4 Date d'inscription jeudi 14 février 2013 Statut Membre Dernière intervention 14 février 2013
14 févr. 2013 à 17:08
excuse moi quel code????
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
14 févr. 2013 à 18:35
Dans ta boucle for, il faut mettre la variable entrée par l'utilisateur (et non 10 statiquement)
0
kamal92 Messages postés 4 Date d'inscription jeudi 14 février 2013 Statut Membre Dernière intervention 14 février 2013
14 févr. 2013 à 18:57
mais justement l'utilisateur saisi nimporte quel chiffre je ne sais quoi mettre
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
14 févr. 2013 à 19:05
je ne sais quoi mettre
La variable...
int i;
int n;
scanf ("% d", &n);
for (i=0; i < n; i++)
...
0