Ir para conteúdo
Fórum Script Brasil
  • 0

Imprimir losango


brunoandrad

Pergunta

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

  • 0

#include <stdio.h>

int main (){
    printf("digite um numero!\n");
    int l;
    scanf("%d",&l);

    for(int i = 0; i <  l; i++){
        for ( int j = 0; j < l; j++){
            if ((i + j < (l - 1)/2) || (j - i >= (l+1)/2) || (i + j >= l + (l-1)/2) || (i-j >= (l+1)/2)){
                printf("   ");
            }else{
                printf(" * ");
            }
        }
        printf("\n");
    }

    return 0;
}

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...