Bonjour,
J'apprends la programmation informatique en langage c et je suis au boucle for et je me suis fixé un problème que je n'arrive pas à résoudre.
Dans mon livre on nous demande de dessiner une pyramide comme ceci :
* => 3 espaces et 1 étoile
*** => 2 espaces et 3 étoiles
***** => 1 espace et 5 étoiles
******* => 0 espace et 7 étoiles
J'ai réussi à résoudre ce problème le code de la fonction pyramide est ci dessous :
void pyramide(int hauteur)
{
int longueur = hauteur;
for (int i = 0; i < longueur; i++)
{
// Le nombre d'espace en fonction de la hauteur
for (int i = 0; i < hauteur - 1; i++)
{
printf("x");
}
// Le nombre d'étoiles :
for (int j = 0; j < 2 * i + 1; j++)
{
printf("*");
}
hauteur--;
printf("\n");
}
}
J'essaye de maintenant de faire la même chose mais en inversant la pyramide comme ci dessous :
******* => 0 espace et 7 étoiles
***** => 1 espace et 5 étoiles
*** => 2 espaces et 3 étoiles
* => 3 espaces et 1 étoile
J'ai trouvé le bout de code qui permet de dessiner le nombre d'étoile ci dessous :
void pyramide_inverse(int hauteur)
{
for (int i = hauteur - 1; i >= 0; i--)
{
/* Le nombre d'espace en fonction de la hauteur :
*
* CODE MANQUANT
*
*/
// Le nombre d'étoiles :
for (int j = 0 ; j < 2 * i + 1; j++)
{
printf("*");
}
printf("\n");
}
}
Le souci c'est que dans ma boucle la plus externe j'initialise i à hauteur - 1 ce qui me permet d'avoir le nombre d'étoiles correct.
Hors pour avoir le bon nombre d'espace il me faut une suite commençant à 0 puis 1 puis 2 ....
Donc la je ne sais pas comment faire.
Pouvez vous m'aider svp ?