Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 11336

Dúvida em exercício de programação, help please

$
0
0
Olá, eu sou nova nesta comunidade (o que não significa que já não tenha lido algumas conversas daqui e tenho a dizer que já aprendi bastante). Estou no primeiro ano do curso de Informática e tenho uma cadeira que é Algoritmia e Programação, que não é a minha melhor (por mais irónico que pareça). Portanto, vinha-vos pedir ajuda com um exercício que é o seguinte: " Ex14) Escreva um programa em C que apresente no ecrã uma árvore de Natal como a que se segue. (***) Para isso deverá pedir ao utilizador o valor de B que representa o número de asteriscos (*) na base da árvore. O valor de B deverá ser obrigatoriamente ímpar e maior ou igual 3. Deverá pedir também o valor de L e A que representam, respetivamente a largura e a altura do tronco da árvore. A largura do tronco L deverá ser pelo menos 1 asterisco, deverá ser obrigatoriamente impar e não poderá ultrapassar metade de B, isto é metade do número de asteriscos da base. A altura do tronco A deverá ser pelo menos 2 asteriscos e também não deverá ultrapassar metade de B. Em caso de valores inválidos o programa deverá apresentar um erro e voltar a pedi-los. " O exemplo da árvore em baixo tem uma base com B = 13 asteriscos, um tronco com largura L = 3 asteriscos e altura A = 4 asteriscos. " A sério eu já tentei de tudo mas o máximo que consegui foi dar resposta aos printfs e depois o programa "explodir". Mando aqui o meu código. Se alguém me pudesse ajudar, agradecia. P.S.: Não pus foto porque não estava a aceitar. Desculpem-me. include<stdio.h> #include<math.h> #include<stdlib.h> int main() { int B, A, L, i, j, k; do { printf("Qual o numero de asteriscos na base da arvore?"); scanf("%d", &B); } while(B<3 && B%2==0); do { printf("Qual o numero de asteriscos na largura?"); scanf("%d", &L); } while(L<1 && L!=0.5*B); do { printf("Qual o numero de asteriscos na altura?"); scanf("%d", &A); } while(A<2 && A!=0.5*B); for(i=3; i<=B; i++) { printf(""); printf("\n"); for(i=1; i=L; i++) for(j=B/2; j>=i; j--) printf("*"); printf("\n"); for(i=2; i<=B; i++) for(k=B/2; k>=i; k--) printf("*\n"); } getchar(); return 0; system("pause"); }

Viewing all articles
Browse latest Browse all 11336

Trending Articles