Buscar

Como faço uma ampulheta utilizando asterisco na linguagem C?

💡 4 Respostas

User badge image

Veronica Park

Veja se dá certo assim:

 

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define MAX_BUFF 256
enum BOOL { FALSE, TRUE };
typedef int BOOL;

BOOL isNumeric(char* arg)
{
    BOOL hasDigit = FALSE;
    char* ptr = arg;

    while(*ptr!='\0' && *ptr!='\n') 
    {
        if(*ptr<'0' || *ptr>'9')
            return FALSE;
        else 
            hasDigit = TRUE;

        ptr++;
    }
    return hasDigit;
}

int main (int argc, char** argv) 
{
    char* linha_completa;
    char buffer[MAX_BUFF];
    int i, j, n;
    
    // ler input do utilizador e testar se é válido
    buffer[0] = '\0';

    while(!isNumeric(buffer) || atoi(buffer)<5 || atoi(buffer)>80)
    {
        printf( "\nIntroduza um numero entre 5 e 80: ");
        fgets(buffer, MAX_BUFF, stdin);
    }
    
    n = atoi(buffer);
    linha_completa = (char*) malloc(n+1);
    memset(linha_completa, '*', n);
    linha_completa[n] = '\0';

    // primeira linha 
    puts(linha_completa);

    // linhas do meio
    for (i=1; i<=n-1; i++)
    {
        for (j=0; j<=n; j++)
        {
            if(j==i || j==n-i-1) putchar('*');
            else putchar(' ');
        }
        putchar('\n');
    }

    // última linha 
    puts(linha_completa);

    return 0;
}
1
Dislike0
User badge image

Andre Smaira

Como faço uma ampulheta utilizando asterisco na linguagem C?

#linguagem c


Para a resolução desta tarefa foram utilizados conhecimentos sobre a linguagem de programação C.


Primeiramente é necessário definir um comprimento lateral máximo (N), lido do usuário por exemplo, após isto implementar uma estrutura de repetição com uma variável i que vai de 0 a N, para que seja impresso uma linha com asterisco na posição i e na posição N-1, esse ciclo irá formar uma cruz. Finaliza-se com a impressão de uma linha de N asteriscos.


Resumindo:


1 - Lê um inteiro N;

2 - Imprime uma linha com N asteriscos;

3 - Imprime N-2 linhas com asteriscos nas posições I e N-1;

4 - Imprime uma linha com N asteriscos.


A implementação do programa é dividida em 4 etapas que resultam na impressão de uma ampulheta de asteriscos.

0
Dislike0
User badge image

Andre Smaira

Para a resolução desta tarefa foram utilizados conhecimentos sobre a linguagem de programação C.


Primeiramente é necessário definir um comprimento lateral máximo (N), lido do usuário por exemplo, após isto implementar uma estrutura de repetição com uma variável i que vai de 0 a N, para que seja impresso uma linha com asterisco na posição i e na posição N-1, esse ciclo irá formar uma cruz. Finaliza-se com a impressão de uma linha de N asteriscos.


Resumindo:


1 - Lê um inteiro N;

2 - Imprime uma linha com N asteriscos;

3 - Imprime N-2 linhas com asteriscos nas posições I e N-1;

4 - Imprime uma linha com N asteriscos.


A implementação do programa é dividida em 4 etapas que resultam na impressão de uma ampulheta de asteriscos.

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais