Array
(
)

Triangulo formado de asteriscos

Relfi
   - 03 abr 2007

#Código


Eae galera...

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

Estou com um probleminha ki....

etou tentando montar um programa q imprima um triangulo
composto por " * "´s, em que a base do triangulo seja um número digitado pelo
usuário... Isso estou tentando fazer de forma recursiva, naum tenho certeza se esta recursivo mesmo, mas cheguei neste resultado:


#include<iostream.h>
include<conio.h>

void aste(int n)
{
if(n<=1)//*inclue n&meros negativos
cout<<"*""\n";
else
{
cout<<" ";
aste(n-2);
for(int i=0;i<n;i++)
{
cout<<"*";
}
cout<<"\n";

for(int e=1;e<n;e++)
cout<<" ";
}

}
void main()
{
int n;
char quit=´s´;
while(quit==´s´)
{
clrscr();
cout<<" Digite a base da piramide " ;
cin>> n ;
cout<< "a piramede ‚ essa:\n\n";
aste(n);
cout<< "\n\n fazer de novo?(s/n): ";
cin>>quit;

}
while(quit!= ´n´&& quit !=´s´)
{
cout<< "\n\nTente de novo(s/n) ";
cin >> quit;
if(quit==´s´)
{
clrscr();
main();
}
}
}

estou usando o TURBO c++ como compilador e estou com problemas na hora de apresentar os espaços certos de cada linha do triangulo...
se alguem for executa-lo, utilize numeros autos como 40, ou 30 para observar o que acontece com o triagulo.


esta acontecendo algo do tipo:

* //A primeira linha parece estar no lugar certo.
***
*****
*******
*********
***********//E assim por diante...dependendo da base digitada.

desde já eo agradeço...

abraços.



Rodc
   - 05 abr 2007

Tá me devendo uma heim!!!
E vê se melhora a identação do seu código que ele tá muito ilegível.
#Código

#include<iostream.h>
include<conio.h>

void aste(int qtdEstrelas, int n)
{
// Coloca os espaços
for (int x=0; x<n/2; x++)
cout<<" ";

// Coloca as estrelas
for (int x=0; x<qtdEstrelas; x++)
cout<<"*";

cout<<"\n";
if (n > 1)
{
// Caso seja par, adiciona apenas mais uma estrela
if (qtdEstrelas == 1 && (n ¬ 2) == 0)
aste(qtdEstrelas + 1, n-2);
else
aste(qtdEstrelas + 2, n-2);
}
}

void main()
{
int n;
char quit=´s´;
while (quit == ´s´)
{
clrscr();
cout<<" Digite a base da piramide " ;
cin>> n ;
cout<< "a piramede eh essa:\n\n";
aste(1, n);
cout<< "\n\n fazer de novo?(s/n): ";
cin>>quit;
}
while (quit != ´n´ && quit != ´s´)
{
cout<< "\n\nTente de novo(s/n) ";
cin >> quit;
if (quit == ´s´)
{
clrscr();
}
}
}



Relfi
   - 05 abr 2007

cara mto bom...ele só deu um errinho aki, qto a declaração do x que faz o espaço, mais só substituí por outra sigla e concluí, vc realmente eh phoda kara...
valew mesmo...e pode deixar...voh me lembrar da dica da identificação do código...
vlw mesmo kara...