Ir ao conteúdo
  • Cadastre-se

Problema em exercicio em c


Lucas532
Ir à solução Resolvido por ScreenBlack,

Posts recomendados

Pessoal sou novo no fórum comecei a estudar programação a alguns meses e estou com dificuldades para completar um exercicio, gostaria de uma ajuda se possível...

O exercicio é o seguinte:

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

A comitiva de atletas do Brasil que irão participar das Olímpiadas de 2016 precisa se organizar para desfilar na cerimônia de abertura. Assim, o organizador deseja dispor o conjunto de atletas conforme o triângulo a seguir: 

---|--- (1ª Fila, 1 atleta)

--|-|-- (2ª Fila, 2 atletas)

-|-|-|- (3ª Fila, 3 atletas)

|-|-|-| (4ª Fila, 4 atletas)(...)

Desenvolva um programa que a partir de um número de atletas (valor lido), determine:

- quantas filas completas serão formadas,

- se for o caso, quantos atletas restarão na fila incompleta,

- organização da comitiva, conforme a figura acima (usando apenas as filas completas).

 

O problema é que não estou conseguindo entender como vou contar as filas completas e incompletas,nem a parte das figuras...

PS:Não estou pedindo a resposta ok? apenas ajuda...

 

 

Link para o comentário
Compartilhar em outros sites

consegui a parte da contagem fazendo o que voce me explicou mas nao estou conseguindo imprimir as figuras... aqui esta meu código ate agora:
 

#include <stdio.h>
#include <conio.h>
#include <locale.h>
int main()
{
    setlocale(LC_ALL,"portuguese");
    int qtdatletas , qtdfilascomp , figuras;
    do{
        printf("Informe o número de atletas(maior que 0): ");
        scanf("%d",&qtdatletas);
    }while( qtdatletas <= 0 );
    for ( qtdfilascomp = 1; qtdfilascomp <= qtdatletas; qtdfilascomp++ )
        qtdatletas = qtdatletas - qtdfilascomp;
    if ( qtdatletas < qtdfilascomp )
            qtdfilascomp--;
    printf("Filas completas: %d\n",qtdfilascomp);
    printf("Atletas na fila incompleta: %d\n\n",qtdatletas);
    

    getch();
    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

  • Solução

A rotina não tem muito segredo.

Elaborei essa, com as partes comentadas:


 

    /* MONTAGEM DE FIGURA - INICIO */
    int divisor = qtdfilascomp - 1;
    int tmpCont = 0;
    int tmpCont2 = 0;
    int repetirFigura = 1;
    int contRepetirFigura = 0;
    int alternarFigura = 1;    

    for (tmpCont = 0; tmpCont < qtdfilascomp; tmpCont++) /* Define a fila */
    {
        for (tmpCont2 = 0; tmpCont2 < ( (qtdfilascomp * 2) - 1); tmpCont2++) /* Percorre as fileiras */
        {
            if ( ( tmpCont2 >= divisor ) && ( contRepetirFigura++ < repetirFigura ) ) /* Trata as alternacias ( "-" e "|" ) a partir da posicão 'divisor' */
            {
                if ( alternarFigura == 1 )
                {
                    printf("|");
                    alternarFigura = 0;
                }
                else
                {
                    printf("-");
                    alternarFigura = 1;
                }
            }
            else
                printf("-");
        }
        printf("\n");

        repetirFigura += 2;
        contRepetirFigura = 0;
        divisor--;
        alternarFigura = 1;
    }
    printf("\n");
    /* MONTAGEM DE FIGURA - FIM */

 

Explicar o processo utilizando palavras é um pouco complicado, pois é mais fácil complicar as idéias do que clareá-las.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!