Structures itératives

Blennoragie Messages postés 37 Statut Membre -  
Blennoragie Messages postés 37 Statut Membre -
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
Configuration: Linux
Firefox 3.0.15

3 réponses

  1. loupius Messages postés 789 Statut Membre 148
     
    Une structure du type:
    for (ligne=0; ...; ligne++)
    {
      for (ligne=0;...; ligne++)
        ...
    }
    ne fonctionne jamais... sauf exception bien sûr.
    Bonne réflexion.
    1
  2. Blennoragie Messages postés 37 Statut Membre 6
     
    J'trouve absolument rien, surtout la 2eme boucle qui me pose probleme.
    0
    1. loupius Messages postés 789 Statut Membre 148
       
      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
  3. Blennoragie Messages postés 37 Statut Membre 6
     
    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