Jump to content
dark_kolos

Problema em código para desenhar árvore

Recommended Posts

dark_kolos

Boas, foi-me pedido um trabalho para desenhar uma arvore de natal consoante as variáveis dadas pelo utilizador sendo estas: copa da árvore, pé da árvore e caractere a ser usado.

#include <stdio.h>
#include <math.h>
int main()
{
//begin_inputs
int copa,pe,x,y,z,k,f,l,n,u,g;
float h;
char car;
printf("Qual a altura da copa?");
scanf(" %i",&copa);
printf("Qual a altura do pé?");
scanf(" %i",&pe);
printf("Qual o caractere?");
scanf(" %c",&car);
//end_inputs
if (pe<copa){
  for (y=0;y<copa;y++){
    g=copa-y;
    for(g=g;g>0;g--)
      printf(" ");
      for (x=0;x<copa;x++){
        f=(2*x)+1;
        for (f=f;f>0;f--)
          printf("%c",car);
            printf("\n");}
}
}
h=copa+1;
k= (int) roundf (h);
if (pe<copa){
  for (z=pe;z>0;z--){
    for (l=n;l<k;l++)
      printf(" ");
      printf("%c\n",car);}
}
}

Um exemplo é ficar do tipo: [

Qual a altura da copa? 5

Qual a altura do pé? 4

Qual o caractere? A

         A

       AAA

     AAAAA

   AAAAAAA

AAAAAAAAA

         A

         A

         A

         A

]

No entanto, eu insiro as variáveis iguais Às do exemplo e dá-me isto:

Qual a altura da copa?5
Qual a altura do p├®?4
Qual o caractere?A
     A
AAA
AAAAA
AAAAAAA
AAAAAAAAA
    A
AAA
AAAAA
AAAAAAA
AAAAAAAAA
   A
AAA
AAAAA
AAAAAAA
AAAAAAAAA
  A
AAA
AAAAA
AAAAAAA
AAAAAAAAA
 A
AAA
AAAAA
AAAAAAA
AAAAAAAAA
     A
     A
     A
     A

Press any key to continue . . .

Share this post


Link to post
Share on other sites
dark_kolos
Em 26/11/2017 às 06:49, HappyHippyHippo disse:

podes indentar o teu código por favor ?

pôr as ações todas por ordem e os símbolos associados a cada ação?
desculpa pela ignorância, ainda estou a aprender ahaha
de qualquer forma, fica assim se é aquilo que estou a pensar 

#include <stdio.h>
#include <math.h>
int main()
{
//begin_inputs
int copa,pe,x,y,z,k,f,l,n,g;
float h;
char car;
printf("Qual a altura da copa?");
scanf(" %i",&copa);
printf("Qual a altura do pé?");
scanf(" %i",&pe);
printf("Qual o caractere?");
scanf(" %c",&car);
//end_inputs
  if (pe<copa){
    for (y=0;y<copa;y++){
      g=copa-y;
      for(g=g;g>0;g--)
        printf(" ");
      for (x=0;x<copa;x++){
        f=(2*x)+1;
        for (f=f;f>0;f--)
            printf("%c",car);
            printf("\n");
      }
    }
  }
  h=copa+1;
  k= (int) roundf (h);
  if (pe<copa){
    for (z=pe;z>0;z--){
      for (l=n;l<k;l++)
        printf(" ");
        printf("%c\n",car);}
  }
}

 

Share this post


Link to post
Share on other sites
HappyHippyHippo

o teu ciclo de apresentação de espaços é somente executado uma vez antes de apresentar o caracter da copa da primeira linha

depois disso, estás a apresentar sempre os caracteres da copa no ciclo for (x=0;x<copa;x++)

 

ps : a uns tempos fiz um código bem minimalista para apresentar essa àrvore ... deve andar prai num tópico recondito do fórum

Edited by HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
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

×
×
  • 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.