Afficher un losange

Magnou Messages postés 68 Statut Membre -  
 amigo -
Bonjour,

J'ai des difficultés a afficher un losange c'est a dire finir le programme et compilé sur C++. Le problème est que quand je compile et je donne une hauteur n si le nombre est pair le programme affiche (2n-1). hors la réalité est que le nombre le plus petit pour afficher un losange(avec des étoiles) est 3 de plus n ne peu qu'être impaire.

Je voudrais savoir comment programmer pour ne pas afficher 2n-1 et que le plus petit nombre soit 3

voila ce que j'ai fait sur C++

#include <stdio.h>
#include<conio.h>
int main ()
{
int i,j,n,N;
printf("Entrez la hauteur du losange svp:");
printf("\n Hauteur=");
scanf("%d",&n);

for (i=1; i<=n; i++)
{

for (j=0; j<n-i; j++)
{
printf (" ");
}
for (j=1; j<= (i*2-1); j++)
{
printf("*");
}
printf ("\n");
}

for (i=1; i<=n-1; i++)
{
for (j=0; j<i; j++)
{
printf(" ");
}
N=2*(n-i)-1;
for(j=1;j<=N; j++)
{
printf("*");
}
printf("\n");
}

getch();
return(0);
}

2 réponses

amigo
 
bonjour,

Avec une boucle do ... while, ça devrait marcher.

do
{
printf("Entrez la hauteur du losange svp (entier impair >= 3):");
printf("\n Hauteur=");
scanf("%d",&n);
}
while (((n % 2) > 0) || (n < 3)) ;/* % -> reste de la division entiere*/

Salut.
0
amigo
 
Pardon, je crois que c'est plutot

while (((n % 2) == 0) || (n < 3)) ;/* % -> reste de la division entiere*/
0