C++ : programmer un triangle isocèle en cpp
ppp31
-
Dalfab Messages postés 720 Statut Membre -
Dalfab Messages postés 720 Statut Membre -
Bonjour,
Je viens de débuter le c++ (premier langage avec des bases niveau lycée en python) et je veux programmer un triangle isocèle avec des étoiles.
Je l'ai fait avec un triangle isocèle rectangle.
Comme il s'agit d'un triangle isocèle il y a autant d'étoiles que de lignes j'ai utilisé la boucle for :
extrait du programme :
int n;
cout<<"nombre de ligne(s) : ";
cin>> n;
for (int i=1 ; i <= n ; i++)
{
{ for (int j=1 ; j<= i ; j++)
cout<<"*";
}
cout<<endl;
}
Si n=3, le programme affichera :
*
Maintenant je souhaite le modifier pour avoir ça (avec toujours l'utilisateur qui choisira n, le nombre de lignes) :
*
à chaque fois il y a n-1 d'espace, c'est-à-dire : pour n=3 :
D'après ce que j'ai compris il faut donc que j'intègre quelque part dans le programme : for (int e = n-1; e==0; e--) pour les espaces (si j'ai bien compris) mais je ne comprends pas :
- où le placer dans le programme
- s'il suffit d'accompagner cout<<e*endl (si ça existe) pour qu'il y ait les espaces
en bref je suis embrouillé et à chaque fois que je tente de me débloquer, j'en suis encore davantage embrouillé.
Merci pour votre aide.
Je viens de débuter le c++ (premier langage avec des bases niveau lycée en python) et je veux programmer un triangle isocèle avec des étoiles.
Je l'ai fait avec un triangle isocèle rectangle.
Comme il s'agit d'un triangle isocèle il y a autant d'étoiles que de lignes j'ai utilisé la boucle for :
extrait du programme :
int n;
cout<<"nombre de ligne(s) : ";
cin>> n;
for (int i=1 ; i <= n ; i++)
{
{ for (int j=1 ; j<= i ; j++)
cout<<"*";
}
cout<<endl;
}
Si n=3, le programme affichera :
*
Maintenant je souhaite le modifier pour avoir ça (avec toujours l'utilisateur qui choisira n, le nombre de lignes) :
*
à chaque fois il y a n-1 d'espace, c'est-à-dire : pour n=3 :
- (j'ai fait n-1 espaces = 3-1 espaces = 2 espaces)
- (1espace)
- ( 0 espace)
- (1espace)
D'après ce que j'ai compris il faut donc que j'intègre quelque part dans le programme : for (int e = n-1; e==0; e--) pour les espaces (si j'ai bien compris) mais je ne comprends pas :
- où le placer dans le programme
- s'il suffit d'accompagner cout<<e*endl (si ça existe) pour qu'il y ait les espaces
en bref je suis embrouillé et à chaque fois que je tente de me débloquer, j'en suis encore davantage embrouillé.
Merci pour votre aide.
1 réponse
Bonjour,
Le nombre d'espaces doit être mis à l'intérieur de la boucle sur i et avant la boucle sur j qui affiche les étoiles.
Es-tu sûr du nombre d'espaces à produire?
Et en effet, il existe un moyen simple de générer N espaces ou N étoiles. Il existe un constructeur de
Le nombre d'espaces doit être mis à l'intérieur de la boucle sur i et avant la boucle sur j qui affiche les étoiles.
Es-tu sûr du nombre d'espaces à produire?
Et en effet, il existe un moyen simple de générer N espaces ou N étoiles. Il existe un constructeur de
std::stringqui fait cela.
int n;
std::cout << "nombre de ligne(s) : ";
std::cin >> n;
for ( int i = 1 ; i <= n ; i+=2 )
{
std::cout << std::string( (n-i)/2 , ' ' );
std::cout << std::string( i , '*' );
std::cout << std::endl;
}