Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

viciado

[Resolvido] Fatorial

Recommended Posts

Calcular o valor de E

 

E=1+1/1!+1/2!+1/3!+...+1/n!

 

 

 

#include <stdio.h>

int main(void)
{
		int n,i,j,fat;
		float e;

		printf("\n E=1+1/1!+1/2!+1/3!+...+1/n!\n");
		printf("\n Digite um valor para N\n");
		scanf("%d",&n);
 
		e=1;

		 for(i=1; i<=n; i++)
		   {
			fat=1;
		 for(j=1; j<=i; j++)
		   {
			fat=fat*j;
		   }
			 e=e+1/fat;
			}

		  printf("\n\n%d é o valor de E\n\n",e);
}

 

 

O resultado é sempre 0, se eu colocar a variavel e como int a resposta da o resultado esperado, porém sem precisão.(Não tem os valores após a vírgula)

 

 

Alguém me ajuda ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

Logico que vai dar 0. Int não é ponto flutuante; representa os inteiros e não os racionais; não tem casa depois da virgula.Olha como você está imprimindo o float...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas você tem que IMPRIMIR como float e nao como inteiro...

Ah claro vlw

 

 

Agora fiz assim:

 

 

#include <stdio.h>

int main(void)
{
int n,i,j,fat;
float e;

printf("\n E=1+1/1!+1/2!+1/3!+...+1/n!\n");
printf("\n Digite um valor para N\n");
scanf("%d",&n);

e=1;

for(i=1; i<=n; i++)
{
fat=1;
for(j=1; j<=i; j++)
{
fat=fat*j;
}
e=e+1/fat;
}

printf("\n\n%f é o valor de E\n\n",e);
}

 

 

Só que não importa o valor de N que eu coloco a resposta é sempre 2.000000

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra vez: você esta divindo INTEIROS. VAI aparecer 0. Isso se chama truncagem.

Divida um float (Fracoes sao floats)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra vez: você esta divindo INTEIROS. VAI aparecer 0. Isso se chama truncagem.

Divida um float (Fracoes sao floats)

 

Vlw, agora consegui. Grande ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include <stdio.h>

int main(void)
{
int n,i,j,fat;
float e;

printf("\n E=1+1/1!+1/2!+1/3!+...+1/n!\n");
printf("\n Digite um valor para N\n");
scanf("%d",&n);

e=1;

for(i=1; i<=n; i++)
{
fat=1;
for(j=1; j<=i; j++)
{
fat=fat*j;
}
e=e+1/fat;
}

printf("\n\n%f é o valor de E\n\n",e);
}

 

Para resolver seu problema declare sua variável 'fat' como float.

Ou quanto for divisão por números coloque um '.0' ou declare sua divisão float antes dela.

 

ex:

 

"

e= float(e+1/fat)

"

 

 

"

e=e+1/1.0

"

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.