Bueno para empezar tengo 2 dudas que están relacionadas entre si, estoy estudiando el libro de deitel y estoy truncado en los dos últimos ejercicios del capitulo 3, es sobre sacar el valor aproximado de la constante "e" mediante la siguiente formula e = 1 + 1/1! + 1/2! + 1/3!...
Hice el programa pero no me devuelve ningún valor, se queda la pantalla vacía lo que me da a entender que se ha creado un ciclo infinito, pero no he dado con el error:
Código:
Bueno aqui al principio el "contador" vale lo mismo que "n" porque en el ciclo el valor de n se pierde al restarse , y por lo tanto contador reserva el valor original y le suma 1, para luego almacenarse de nuevo en "n" y comenzar el siguiente ciclo con el factorial que sigue.#include <stdio.h> int main () { float ni = 1; //es el factorial !n float e = 1; // valor de "e" float contador = 2; //contador lo incie en 2 float n = 2; e += 1/ni; //aqui "e" vale 2 ++ni; while (e != 2.718055556){ while (n != 1){ ni = ni * (n-1); --n; } ++contador; n = contador; //lo que hago es darle el valor de contador a "n" e += 1/ni; ++ni; } printf("%f\n", e); system("pause"); return 0; }
Me termina dando ciclo infinito siendo que se supone que al llegar al factorial de 7 el valor de "e" seria 2.718055556, y el ciclo se debería de romper, y desplegarme el valor de e.
Bueno la otra duda es sobre float y surgio cuando quise sacar el valor de "e", sin usar ciclos:
Código:
No me despliega los decimales del numero "e" sino 2.00000, lo que me da a entender que si el primer programa funcionara me daria el mismo resultado.#include <stdio.h> int main (){ float e; e = 1 + 1 + (1/2) + (1/6) + (1/24) + (1/120); printf("%f\n", e); return 0; }
Por cierto no puedo usar otro tipo de variable de mas extensión.