Déssiner un piramide avec langage c

Bonjour,
voulez vous m aider car je suis bloquer la
je daisir ecrire un programme qui permet de construire des piramides sachant que l utilsateur entre le nombre de ligne
(la hauteure du triangle qui y est enface de l utilisateur) est qui donne un résultat comme ce lui ci:

combien de ligne ? 5

----------------------------------*"
--------------------------------***"""
------------------------------*****"""
----------------------------*******"""
--------------------------*********"

j ai essaier de le faire mais je me trouve toujour en face du méme probléme ;comment faire pour que les (") s arréte d ajouter un autre (") dans la ligne 4 (comme vous le voyer au dessin en haut) est qu il diminu de 2 dans la derniere ligne
(ici dans le cas ou le nombre de ligne est 5)
mon prgramme que j ai fait :

#include <stdio.h>
int main ()
{
int x, y, z,d,n;
printf ("combien de ligne?");
scanf ("%d",&d);
for(x=0;x<d;x++)
{
for(y=0;y<(d-x);y++)
{
printf(" ");
}
for(z=0;z<1 + 2 * x;z++)
{
printf("*");
}{if (z=1)
{for (n=0;n<=x;n++)
printf ("@");

}

printf("\n");
}}}

mais il donne un résultat comme ca :

combien de ligne ? 5

-------------------------------*@
-----------------------------***@@
---------------------------*****@@@
-------------------------*******@@@@
------------------------********@@@@@
Configuration: Windows XP
Internet Explorer 6.0

2 réponses

  1. #include <stdio.h>
    #include <iostream.h>

    void main()
    {
    int n,i,j,nes,net,k;
    cout << "Entrez le nombre de lignes : "; cin >> n;
    nes = n-1;
    net = 1;
    for( i=1 ; i<=n ; i++ ) {
    for( j=1 ; j<=nes ; j++ )
    cout << " ";
    for( k=1 ; k<=net ; k++ ) {
    cout << "*"; }
    net = net+2;
    nes = nes-1;
    cout <<"\n";}
    getchar();
    }
    1
    1. voila la correction :
      #include <stdlib.h>
      #include <stdio.h>
      int main ()
      {
      int x, y, z,d,n;
      printf ("combien de ligne?");
      scanf ("%d",&d);
      for(x=0;x<d;x++)
      {
      for(y=0;y<(d-x);y++)
      {
      printf(" ");
      }
      for(z=0;z<1 + 2 * x;z++)
      {
      printf("*");
      }{if (z=1)
      {for (n=0;n<=x;n++)
      printf (" ");

      }

      printf("\n");

      }}
      system("PAUSE");
      }

      de amine belgacha
      0
      1. voici une autre solution plus ergonomique!!

        
        #include<stdio.h>
        #include<conio.h>
        void triangle_rectangle(int);
        void trinagle_isocele(int);
        
        void main()
        {
        int nb_lignes;
        clrscr();
        do{
           printf("Entrez le nombre de lignes: ");
           scanf("%d",&nb_lignes);
          }while(nb_lignes<0);   /*boucler sur les valeurs negatives saisies*/
        printf("\n\aTriangle rectangle:\n\n");
        triangle_rectangle(nb_lignes);
        getch();
        printf("\n\aTriangle isocele:\n\n");
        trinagle_isocele(nb_lignes);
        getch();
        }
        /*********** Developpement des fonctions ************/
        void triangle_rectangle(int nb_lignes)
        { int i,j;
        
         for(i=0;i<=nb_lignes;i++)
         {  for(j=0;j<=i;j++)
             printf("*");
           printf("\n");
         }
        }
        
        
        void trinagle_isocele(int nb_lignes)
        {
         int i,j,k;
         int nb_espaces=nb_lignes-1;
        
         for(i=1;i<=nb_lignes;i++)
         {
          for(j=0;j<nb_espaces;j++)
            printf(" ");
          for(k=0;k<(2*i-1);k++)
            printf("*");
          nb_espaces--;
          printf("\n");
          }
        }
        
        0