programa de factoriales!!!

condesitadeirun
03 de Diciembre del 2005
Hola!!! waaaaa ayer toda la noche y no conseguí sacar esta caca de programa
Tengo que sumar todos los factoriales hasta el 9!! y no se porque pero me sale 5, numero inccorecto evidentemente
he puesto printfs pero no consigo descubrir donde falla, he cambiado de sitio las llaves y sigue sin funcionar así que las he dejado en el primer sitio donde creí :s
Espero que me ayudeis
Besos
/*Programa 9 factoriales*/
#include <stdio.h>
#include <conio.h>
main()
{
clrscr();
int suma,x,resul,fact,cont;
suma=0;
x=1;
resul=1;
for(fact=x; fact<=9; fact=fact+2)
{
for(cont=x;cont>=1; cont=cont-1)
{
resul=resul*cont;
}
suma=suma+resul;
resul=1;
}
printf("n El resultado es :%i",suma);
getch();
}

kike
03 de Diciembre del 2005
el factorial de 9 se calcula asi:
1*1*2*3*4*5*6*7*8*9=362880.
Si queremos calcularlo debemos seguir los siguientes pasos:
1*1=1
1*2=2
2*3=6
6*4=24
24*5=120
120*6=720
720*7=5040
5040*8=40320
40320*9=362880

por lo tanto algo asi deberia funcionarte

int fact=1;
for(x=fact;x<=9;x++)
fact=fact*x;
Creo que este bucle es suficiente para lo que pides
Hasta la proxima condesita....

kike
03 de Diciembre del 2005
El fallo lo tienes en los bucles,el primero debe quedar asi

for(fact=x; fact<=9; fact=fact+1)

cambia el valor de aumento de fact, es decir de uno en uno pa sumarlos tos.
Y el segundo bucle solo debes cambiar la x por fact

for(cont=fact;cont>=1; cont=cont-1)
en lugar de
for(cont=xt;cont>=1; cont=cont-1)

Tal como lo tienes x siempre es uno y el bucle se repite identicamente.
Pruebalo y veras como ahora si