Ir ao conteúdo
  • Cadastre-se
danisj

C ProgramaFatorial em que o usuario digite dois numeros, e faça o fatorial entre.

Recommended Posts

Preciso fazer um programa usando função, em que um usuário digite 2 números e o programa gere o intervalo fatorial entre eles

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

int fatorial(int x, int y);
int main()
{
    int x,y;
    printf("digite um n");
    scanf("%i",&x);
    printf("digite outro n ");
    scanf("%i",&y);
    printf("%i",fatorial(x,y));
}

int fatorial(int x,int y)
{
    int fatorial = 1;
do
    {

   fatorial = fatorial * y;

    y++;

    }
while (x>=y);
return fatorial;
    do
    {

   fatorial = fatorial * x;

    x++;

    }
    while ( y>=x);
return fatorial;
}


fiz, mas só funciona se x for maior que y, queria que funcionasse pros dois casos

  • Curtir 2
  • Confuso 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Intervalo Fatorial? 

 

Veja se entendi! Vamos lá, admita de início que todo intervalo pode ser representado pelos elementos do vetor C de n-termos tal que a ∈ C ∧ b ∈ C, ou seja, ( a ∧ b ) ∈ C, a < b. Exite um conjunto C' que é fatorial C.

 

 C' = { x! ∀  x ∈ C  |  a < x < b } 

 

Nessa caso a resposta é: C'[max(a,b) - min(a,b)]= { x! ∀ x ∈ C | min < x < max }

Resolve:

  1. implemente função para calcular o fatorial de 1 valor.
  2. implemente função para determina o intervalo e salvar cada fatorial em um vetor.
  3. implemente função que a soma dos elementos de um vetor.
  4. Ou implemente 1 função que faz o que faz 1,2 e 3;

 

A função fatorial implementada por você não fez sentido, não para mim.

Agora é com você!

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

1#

Sobre:

Em 28/06/2018 às 05:43, danisj disse:

Preciso fazer um programa usando função, em que um usuário digite 2 números e o programa gere o intervalo fatorial entre eles

O que significa "intervalo fatorial"? Seria algo como, por exemplo tendo os números 5 e 2, ai faço 5x4x3x2? (começa com 5 e termina com 2). Se sim, a base do seu código está correta (apenas algumas ressalvas: como o nome da função, e um erro de lógica citado no 3# etc).

 

 

 

2#

Sobre:

Em 28/06/2018 às 05:43, danisj disse:

fiz, mas só funciona se x for maior que y, queria que funcionasse pros dois casos

Então, existe um "intervalo fatorial" onde y pode ser maior que x???

 

Se sim, explique como deveria funcionar;

Se não, explique como quer que o código se comporte.

 

 

 

3#

Sobre o código. Veja o comentário inserido por mim:

int fatorial(int x,int y) {
    int fatorial = 1;
    do {
        fatorial = fatorial * y;
        y++;
    } while (x>=y);
    
    return fatorial; //esse comando faz finalizar a função, logo as linhas abaixo NUNCA serão executadas
    
    do{ 
       fatorial = fatorial * x;
       x++;
    } while ( y>=x);
    return fatorial;
}

 

adicionado 1 minuto depois

PS: eu acho que entendi o que você quer, mas vamos aguardar a sua resposta para estimular o pouco o auto-raciocínio.

adicionado 6 minutos depois

@AnsiC

Sobre:

22 horas atrás, AnsiC disse:

A função fatorial implementada por você não fez sentido, não para mim.

Pelo que eu entendi, seria fazer um fatorial de a, mas indo apenas até b. Ex.: a=10, b=5. Seria 10*9*8*7*6*5.

 

A única dificuldade está no 2# que citei acima. A sugestão do que precisa fazer está no próprio código dela, mas sugiro aguardamos a resposta dela...

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×