Ir ao conteúdo

Posts recomendados

Postado
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

int main()

{
    int fatorial;
    int resultado = 1;
    char continuar = 's';
    

    do
    {
            printf("Indique o numero do fatorial que quer calcular. \n\n");
            scanf("%i", &fatorial);
            
            if (fatorial >= 1)
            {

                for ( ;fatorial >= 1;fatorial--)
                {
                    resultado *= fatorial;
                }
                printf("\n\n O resultado do fatorial pedido eh %i \n\n", resultado);
            }
            else
            {
                printf("\n\n O numero do fatorial que escolheu nao eh positivo! \n\n");
            }

        printf("\n\n Quer Continuar o Programa? \n\n");
        scanf(" %c", &continuar);
        printf("\n-----------------------------------------------------------\n");
        printf("\n-----------------------------------------------------------\n");
    }
    
    while (continuar == 's');

    system("pause");
}

 

Boa tarde, estou com problemas neste programa. O programa calcula bem o fatorial do numero que o utilizador pede, mas quando chega a hora de fazer o segundo calculo ele multiplica pelo calculo feito da primeira vez, em vez de apenas calcular o fatorial do novo numero pedido pelo utilizador.

Postado

Isso porque a variável fatorial tem que ser reiniciada a cada laço.

adicionado 1 minuto depois

É só declará-la dentro do laço:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

int main()

{
    int resultado = 1;
    char continuar = 's';
    

    do
    {
  			int fatorial;
            printf("Indique o numero do fatorial que quer calcular. \n\n");
            scanf("%i", &fatorial);
            
            if (fatorial >= 1)
            {

                for ( ;fatorial >= 1;fatorial--)
                {
                    resultado *= fatorial;
                }
                printf("\n\n O resultado do fatorial pedido eh %i \n\n", resultado);
            }
            else
            {
                printf("\n\n O numero do fatorial que escolheu nao eh positivo! \n\n");
            }

        printf("\n\n Quer Continuar o Programa? \n\n");
        scanf(" %c", &continuar);
        printf("\n-----------------------------------------------------------\n");
        printf("\n-----------------------------------------------------------\n");
    }
    
    while (continuar == 's');

    system("pause");
}

 

  • Curtir 1
Postado

muito obrigado!

adicionado 15 minutos depois

Mesmo assim continua a não funcionar

adicionado 25 minutos depois

Já deu, é só meter o int resultado; dentro do laço. Obrigado pela ajuda

  • Curtir 2

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!