Progamme c++ moitié gauche du diamant en etoile [Résolu]

Signaler
-
 kamikaz86 -
après avoir demander de faire un programme qui affiche un diamant et les deux moitie gauche et droite de diamant.j'ai trouver le diamant et la partie droite mais j'ai pas trouver une solution exacte pour La moitié gauche du diamant en étoile.
mon code pour le diamant :
#include 
using namespace std;
int main()
    {    
         const int LigneTot=4;   
         int i,j;
       
       
         for(i=1;i<=LigneTot;i++) {
               for(j=1;j<=(LigneTot-i);j++) cout <<' ' ;
               for(j=1;j<=(i+i-1);j++) cout <<"*" ;

               cout<<'\n' ;
         }

          for(i=3;i>=0;i--) {
               for(j=1;j<=(LigneTot-i);j++) cout <<' ' ;
               for(j=1;j<=(i+i-1);j++) cout <<"*" ;

               cout<<'\n' ;
         }
       
         
         return 0;
    }

je veux que quelqu'un m'aide, merci d'avance.

4 réponses

Messages postés
3805
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 mars 2020
98
Bonjour ?

Merci de préciser le problème. Actuellement, tu n'expliques pas quel est ton souci...

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
18
Salut,

je ne te donnes pas ce que tu demandes mais une autre façon de faire, on dessine la gauche, puis le centre, puis la droite du diamant en jouant sur la "dernière largeur" dessinée.
Avec la taille paramétrable et le choix d'affichage 'T'out, 'G'auche ou 'D'roite :

const int MAX_HAUTEUR = 14;				/*Taille modifiable*/
const int MAX_LARGEUR = MAX_HAUTEUR;	/*Largeur toujours égale à la hauteur*/
const char cAffiche = (char)219;		/*Caractère d'affichage*/
const char cAfficheEmpty = (char)176;	/*Caractère "vide" (arriere plan)*/
const int LG_DIV_2 = MAX_LARGEUR/2;		/*Sert souvent*/
int nLastLg = MAX_LARGEUR/2;			/*La "dernière" largeur dessiné*/
char afficheQuoi = 'T';					/*T=tout, D=droite, G=gauche*/
int j;

for(int lig=0; lig<=MAX_HAUTEUR; lig++)
{
/*vide à gauche*/
for(j=0; j<nLastLg && j<(afficheQuoi != 'G' ? MAX_LARGEUR : LG_DIV_2); j++)	
cout << (afficheQuoi=='D' ? ' ' : cAfficheEmpty);

/*remplissage*/
for(int k=0; k<((LG_DIV_2 - nLastLg)+1) * (afficheQuoi != 'G' ? 2 : 1); k++) 
cout << (afficheQuoi=='D' && k<((LG_DIV_2 - nLastLg)+1) ? ' ' : cAffiche);

/*vide à droite*/
for(int l=0; l<j; l++) 
cout << (afficheQuoi != 'G' ? cAfficheEmpty : ' ');

if( lig == MAX_HAUTEUR/2 )	/*Si arrive au milieu, change de sens*/
nLastLg = 1;
else if(lig < MAX_HAUTEUR/2 )
nLastLg--;
else
nLastLg++;	

cout << endl;
}



bye...
j'aime bien de amélioré ce programme pour avoir la moitie gauche d'un diamant


[list]

*
***
*****
*******
*****
***
*


/list
merci pour l'aide.