Déssiner un piramide avec langage c

badreflow Messages postés 63 Statut Membre -  
 ch_souf -
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. ch_souf
     
    #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
  2. blg2000
     
    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. AmineKalaa Messages postés 109 Statut Membre 7
       
      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