bonjour tout le monde, je dois afficher un losange avec des étoiles en c++, est que je peux avoir votre aide svp, l'utilisateur doit entrer la hauteur du losange qui doit être impair. merci de me donner quelques indications
Version imprimable
bonjour tout le monde, je dois afficher un losange avec des étoiles en c++, est que je peux avoir votre aide svp, l'utilisateur doit entrer la hauteur du losange qui doit être impair. merci de me donner quelques indications
Tu connais la boucle for, tu connais cout ?
Si oui il te suffit de trouver la formule mathématique qui permet de calculer le nombre d'espace a insérer a chaque ligne avant les étoiles.
c'est un peu vague, tu peux être plus explice stp?
Tu veux afficher quelque chose comme ça, non ?
Pour chaque ligne tu affiche donc un certain nombre d'espace + un certain nombre d'étoiles.Code:
1
2
3
4
5 * *** ***** *** *
Il faut donc calculer ces nombre pour chaque ligne.
Tu as donc la hauteur n=5
Premierement tu dois faire une boucle pour afficher
Tu fais une boucle de i=1 a n/2+1=3Code:
1
2
3 1. * 2. *** 3.*****
tu affiches n-i-2 espaces
tu affiche n - 2*(i+1) etoiles
c'est un losange pas plein que je dois afficher, que les étoiles autour...
voici ce que j'ai fais mais il n'affiche pas la derniere branche...
#include <iostream.h> // librairie I/O
main()
{
int hauteur,j;
cout << "Entrez une hauteur" << endl;
cout << "hauteur =";
cin >> hauteur;
for (int i = 0; i < hauteur; i++)
{
for (int j =1; j<hauteur-i; j++)
cout<<" ";
cout<<"*";
cout<<endl;
for (int k= 0;k<hauteur+ i; k++)
cout<<" ";
cout<<"*";
cout<<endl;
}
for (int i=0; i<hauteur ;i++)
{
for (int j=hauteur; j< hauteur+i; j++)
cout<<" ";
cout<<"*";
cout<<endl;
}
} // end main
ps: je viens a peine de commencer le c++
Tiens voilà le début
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 #include <iostream> // librairie I/O int main(void) { int hauteur,j; std::cout << "Entrez une hauteur" << std::endl; std::cout << "hauteur ="; std::cin >> hauteur; for (int i = 1; i <= (hauteur/2)+1; i++) { for (int j=0; j<hauteur-i-2; j++) std::cout<<" "; std::cout<<"*"; if (i != 1) { for (int k= 0;k< 2*(i-1)-1; k++) std::cout<<" "; std::cout<<"*"; } std::cout<<std::endl; } // [...] } // end main
merci, je vais essayé de le comprendre et le terminer...
#include <iostream> // librairie I/O
int main(void)
{
int hauteur,j;
cout << "Entrez une hauteur" << endl;
cout << "hauteur =";
cin >> hauteur;
for (int i = 1; i <= (hauteur/2)+1; i++)
{
for (int j=0; j<hauteur-i-2; j++)
cout<<" ";
cout<<"*";
if (i != 1)
{
for (int k= 0;k< 2*(i-1)-1; k++)
cout<<" ";
cout<<"*";
}
cout<<endl;
}
for (int i = 1; i <= (hauteur/2)+1; i++)
{
for (int k= 0;k< 1*(i)+1; k++)
cout<<" ";
cout<<"*";
if (i != 0)
{
for (int j=0; j< hauteur-2*i; j++)
cout<<" ";
cout<<"*";
}
cout<<endl;
}
} // end main
j'ai essayé, mais le résultat n'est tout à fait satisfaisant, tu peux m'aider à le corriger stp?