Pessoal, sofri para conseguir fazer o programa abaixo, mas gostaria de saber se minha lógica esta correta ou se há um modo mais 'limpo, direto' ou simples de se fazer.
Escreva um programa que imprima o seguinte losango.
*
***
*****
*******
*********
*******
*****
***
*
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, tam, espaco, asterisco, x, y, metade;
asterisco=1;
espaco=tam=10;
metade=tam/2;
printf("Bem vindo ao losango\n\n\n");
for (x=0; x<metade; x++){ //Começa a parte superior
for (i=1; i<=espaco; i++) // Da espaco para alinhamento do losango, a cada vez reduz um espaco
printf(" ");
espaco--; //Decrementa o espaco
for (y=0;y<asterisco;y++) //Imprime o losango
printf("*");
printf("\n"); // Pula linha
asterisco+=2; // Adiciona 2 * para cada linha que for impressa
}
// Atualiza
asterisco-=2;
espaco++;
// Começa a imprimir a parte inferior
for (x=0; x<metade; x++){
asterisco-=2; // Reduz 2 * para cada linha do losangulo
espaco++; // Aumenta o espaço para proxima linha
for (i=0; i<espaco;i++)
printf(" ");
for (y=0; y<asterisco;y++)
printf("*");
printf("\n");
}
return 0;
}
Pergunta
brunoandrad
Pessoal, sofri para conseguir fazer o programa abaixo, mas gostaria de saber se minha lógica esta correta ou se há um modo mais 'limpo, direto' ou simples de se fazer.
Escreva um programa que imprima o seguinte losango.
* *** ***** ******* ********* ******* ***** *** *#include <stdio.h> #include <stdlib.h> int main() { int i, tam, espaco, asterisco, x, y, metade; asterisco=1; espaco=tam=10; metade=tam/2; printf("Bem vindo ao losango\n\n\n"); for (x=0; x<metade; x++){ //Começa a parte superior for (i=1; i<=espaco; i++) // Da espaco para alinhamento do losango, a cada vez reduz um espaco printf(" "); espaco--; //Decrementa o espaco for (y=0;y<asterisco;y++) //Imprime o losango printf("*"); printf("\n"); // Pula linha asterisco+=2; // Adiciona 2 * para cada linha que for impressa } // Atualiza asterisco-=2; espaco++; // Começa a imprimir a parte inferior for (x=0; x<metade; x++){ asterisco-=2; // Reduz 2 * para cada linha do losangulo espaco++; // Aumenta o espaço para proxima linha for (i=0; i<espaco;i++) printf(" "); for (y=0; y<asterisco;y++) printf("*"); printf("\n"); } return 0; }Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.