View Full Version : Ciclos em C


baltax
08-08-2007, 12:37
Boas pessoal comecei a programar a pouco tempo em C o que faz de mim um grande nabo nisto, até estava a perceber o inicio,mas bloqueio muito nos ciclos.... se for só um é facil mas quando são encadeados é complicado...

Alguem me pode explicar por exemplo como faço este triangulo

*
**
***

imaginando que não me dão o numero de colunas fixes..neste caso 3...mas o utilizador é que pede

ou este losangulo de altura 5

..*
.***
*****
.***
..*

agradecia ajuda obrigado

Mr. Brightside
08-08-2007, 12:42
*
**
***


for(i = 1; i <= 3; i++) {
int n;
for(n = i; n; n--) printf("*");
printf("\n");
}Quanto ao losango vou pensar melhor no assunto e já igo alguma coisa. ;)

AragTey
08-08-2007, 14:44
Losango


int x =1;
for (i = 1 ; i >=1 ; i=i+x)
{
int n;
for(n = 0 ; n<=i+1 ; n++)
{
if (n<=2-i)
printf(".");
else
printf("*");
}
printf("\n");
if (i==3) x =-1;
}


O codigo que tinha posto antes estava errado.Assim parace melhor. :)

|[Kaos]|
09-08-2007, 01:36
Quanto ao losango faria algo do género:

#include <stdio.h>
#define altura 5

int main (void) {

int espacos;
int estrelas;
int i;

espacos = altura / 2;
estrelas = 1;


do {
for ( i = espacos; i > 0; i-- ) printf(".");
for ( i = estrelas; i > 0; i-- ) printf("*");
printf("\n");
espacos--;
estrelas=estrelas+2;

} while ( espacos > 0 );


do {
for ( i = espacos; i > 0; i-- ) printf(".");
for ( i = estrelas; i > 0; i-- ) printf("*");
printf("\n");
espacos++;
estrelas=estrelas-2;
} while ( espacos <= altura / 2 );


return 0;

}

Altera-se o valor da altura no define e desenha qualquer losango. O algoritmo é capaz de nao ser o mais eficiente , fiz ah pressa lol

EDIT: so agora é que vi que já responderam LOL :D realmente tenho uma solucao gigante :D mas fica aqui na mesma