Structures itératives

Fermé
Blennoragie Messages postés 34 Date d'inscription samedi 15 mars 2008 Statut Membre Dernière intervention 30 octobre 2012 - 15 nov. 2009 à 18:30
Blennoragie Messages postés 34 Date d'inscription samedi 15 mars 2008 Statut Membre Dernière intervention 30 octobre 2012 - 15 nov. 2009 à 19:37
Bonjour,


je révise et tente de faire le programme suivant :

Ecrire un programme qui affiche un triangle isocèle de $n$ lignes, rempli d'étoiles. Exemple :

hauteur : 6

*
***
*****
*******
*********
***********
(le triangle est isocele, il y a des espaces avant les étoiles)

Je l'ai déjà fais en cours, mais je n'y arrive pas dès qu'il y a une histoire d'espace (que ce soit ce genre de triangle ou les carré par exemple).

J'ai écris cela :

#include <stdio.h>
#include <stdlib.h>

int main(void){

int ligne,hauteur,espace;

printf("Hauteur du triangle : ");
scanf("%d",&hauteur);

for(ligne=0;(hauteur-1-ligne)>0;ligne++){
printf(" ");
for(ligne=0;((ligne+1)*2)<(hauteur*2+1);ligne++){
printf("*");}
printf("\n");}

return EXIT_SUCCESS;

}

Mais, évidemment ca ne marche pas, 2h que je modifie, recommence à zéro, j'essaie de trouverle truc sur papier, je bloque à chaque fois, donc là je demande votre aide.

merci

3 réponses

loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
15 nov. 2009 à 19:01
Une structure du type:
for (ligne=0; ...; ligne++)
{
  for (ligne=0;...; ligne++)
    ...
}
ne fonctionne jamais... sauf exception bien sûr.
Bonne réflexion.
1
Blennoragie Messages postés 34 Date d'inscription samedi 15 mars 2008 Statut Membre Dernière intervention 30 octobre 2012 6
15 nov. 2009 à 19:13
J'trouve absolument rien, surtout la 2eme boucle qui me pose probleme.
0
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
15 nov. 2009 à 19:29
Insère un 'printf' tel que:
for (ligne=0; ...; ligne++)
{
  for (ligne=0;...; ligne++)
  {
    printf ("ligne = %d", ligne);
    ...
  }
  ...
}
et essaie de comprendre le résultat.
Bonne réflexion.
0
Blennoragie Messages postés 34 Date d'inscription samedi 15 mars 2008 Statut Membre Dernière intervention 30 octobre 2012 6
15 nov. 2009 à 19:37
J'ai réussi, voilà mon prog final :

#include <stdio.h>
#include <stdlib.h>

int main(void){

int ligne,hauteur,espace,etoile;

printf("Hauteur du triangle : ");
scanf("%d",&hauteur);

for(ligne=0;ligne<hauteur;ligne++)
{
for(espace=0;espace<hauteur-1-ligne;espace++)
{
printf(" ");
}
for(etoile=0;etoile<1+2*ligne;etoile++)
{
printf("*");
}
printf("\n");
}

return EXIT_SUCCESS;

}
0