Déssiner un piramide avec langage c

Fermé
badreflow Messages postés 54 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 17 octobre 2019 - 14 juin 2008 à 20:43
 ch_souf - 26 déc. 2010 à 21:11
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

-------------------------------*@
-----------------------------***@@
---------------------------*****@@@
-------------------------*******@@@@
------------------------********@@@@@

2 réponses

#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
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
AmineKalaa Messages postés 87 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 10 janvier 2011 7
28 mars 2009 à 17:37
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