Jump to content

[Resolvido] Árvore em C


askazy
 Share

Recommended Posts

Bom dia pessoal, queria ajuda para criar este algoritmo, a entrada é "n" o número de linhas que a figura deve ter e a saída deve ser assim

...*......*... Primeira Linha 2 asteriscos e 12 pontos

..***....***.. Segunda linha 6 asteriscos e 8 pontos

.*****..*****. Terceira linha 10 asteriscos e 4 pontos

************** Quarta linha 14 asteriscos e 0 pontos

Não sei se deu pra entender, mas a idéia é semelhante a criar duas arvores uma ao lado da outra, só que tem que colocar "." não pode ser espaço em branco. A última linha é composta só de asteriscos.

Help.

Edited by askazy
Link to comment
Share on other sites

Eu fiz isso mas não sei como continuar.

#include <stdio.h>
int main (){
    int linha,i,j;
    scanf ("%d",&linha);
    for (i=0;i<linha;i++){
        for (j=0;j<linha-i-1;j++)
        printf (".");
        for (j=linha-i-1;j<linha+i;j++)
            printf ("*");
        printf ("\n");
    }
    return 0;
}
Link to comment
Share on other sites

Sim, basta acrescentar os ciclos para a outra arvore, algo tipo:

#include <stdio.h>
int main (){
   int linha,i,j;
   scanf ("%d",&linha);
         for (i=0;i<linha;i++){
                   for (j=0;j<linha-i-1;j++)
                   printf (".");
                   for (j=linha-i-1;j<linha+i;j++)
                           printf ("*");

                   for (j=0;j<(linha-i-1)*2;j++)
                   printf (".");
                   for (j=linha-i-1;j<linha+i;j++)
                           printf ("*");

                   for (j=0;j<linha-i-1;j++)
                   printf (".");

                  printf ("\n");
         }
    return 0;
}
Link to comment
Share on other sites

Sim, basta acrescentar os ciclos para a outra arvore, algo tipo:

#include <stdio.h>
int main (){
  int linha,i,j;
scanf ("%d",&linha);
	  for (i=0;i<linha;i++){
				for (j=0;j<linha-i-1;j++)
				printf (".");
				for (j=linha-i-1;j<linha+i;j++)
						printf ("*");

			    for (j=0;j<(linha-i-1)*2;j++)
			    printf (".");
			    for (j=linha-i-1;j<linha+i;j++)
					    printf ("*");

			    for (j=0;j<linha-i-1;j++)
			    printf (".");

			   printf ("\n");
	  }
return 0;
}
Link to comment
Share on other sites

Não entendi o que você quis dizer, Happy.

Nossa viajei demais, agora que vi como é simples, estava pensando em algo muito complexo.

Esta é a solução mais simples que tem?

for (j=0;j<(linha-i-1)*2;j++)
							    printf (".");

por que *2?

Edited by askazy
Link to comment
Share on other sites

Entendi, aproveitando o tópico, daqui a algumas semanas eu tenho uma prova escrita de programação que é feita na mão mesmo, onde temos que escrever programas para solucionar problemas dados. Tem alguma "dica" para testar os programas na mão?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.