Calcular 1 / n!

Olá, estou com uma duvida, estava resolvendo uma lista de exercicios da universidade em C e o proposito era calcular 1 / n! (sendo que o n ia de um intervalo de 0 a 7), fiz uma função separada somente pra calcular o fatorial(Com o nome de ‘Fatorial’) e depois em outra função (com o nome de ‘A’) fiz os calculos onde a variavel Resposta era igual a: 1 / Fatorial(n); porem os resultados que obtenho apartair do 1/1! são somente 0, queria entender onde foi meu erro, obrigado!

Vou deixar o codigo logo abaixo:

Olá, estou com uma duvida, estava resolvendo uma lista de exercicios da universidade em C e o proposito era calcular 1 / n! (sendo que o n ia de um intervalo de 0 a 7), fiz uma função separada somente pra calcular o fatorial(Com o nome de ‘Fatorial’) e depois em outra função (com o nome de ‘A’) fiz os calculos onde a variavel Resposta era igual a: 1 / Fatorial(n); porem os resultados que obtenho apartair do 1/1! são somente 0, queria entender onde foi meu erro, obrigado!

Vou deixar o codigo logo abaixo:

// Questão 2 da lista de modularização - C
// Escrever para cada item um programa em Cque exiba os termos, a soma dos termose a média dos termosdas equações de 𝒇(𝒏)∈ℝ

#include <stdio.h>
#include <time.h>

// Função para calcular fatorial
unsigned long int Fatorial(unsigned int n) {
int Fatorial = 1;
for (int i = 1; i <= n; i++) Fatorial *= i;
return Fatorial;
}

// Questão A
int A() {
float Resultado = 0;
for (int n = 0; n < 8; n++) {
    Resultado =  1 / Fatorial(n);
    printf("1/%i! = %.2f\n", n, Resultado);
}
}

int main() {
A();
return 0;
}

Faça o teste de mesa.

Resultado =  1.0 / Fatorial(n);

Divisão de inteiro com inteiro da inteiro e depois é transformado em float, então para funcionar como queremos forçamos o 1 a ser float colocando 1.0 .

printf("1/%i! = %.10f\n", n, Resultado);

Coloquei para exibir mais casas decimais também para enxergar o resultado.

1 curtida

desculpe pela demora, mas muito obrigado, me ajudou muito!