/*
==========================================================
Name : factorial.c
Author : Psycho
Version : 1.0
Description : Programa para calcular el factorial de un numero.
==========================================================
*/
#include <stdio.h>
#include <stdlib.h>
main()
{
// variable que almacena el numero que sera ingresado por el usuario
int numero = 0;
// resultado de las multiplicaiones
int resultado = 0;
// mensaje por pantalla
printf("Ingrese un numero \n");
// leer numero que introduce el usuario
scanf("%d", &numero);
// guardar en el acumulador el numero del usuario antes de ser decrementado
resultado = numero;
// si el numero es mayor a 0 calcular
if(numero > 0)
{
// bucle que realiza los calculos y decrementa el numero del usuario hasta que llegue a 1
while(numero > 1)
{
// decrementar el numero ingresado por el usuario
numero--;
// multiplicar el numero del usuario decrementado y multiplicarlo por los ya calculados
resultado = numero * resultado;
}
// imprimir por pantalla el factorial del numero ingresado por el usuario
printf("El resultado es %d \n", resultado);
}
// si el numero es menor a 0 enviar un mensaje al usuario
else if(numero < 0)
{
printf("No puede ser calculado el factorial \n");
}
// si el numero es igual a 0 mostrar que el factorial es 1
else{
printf("El numero factorial es 1 \n");
}
}

#1 by orlando on May 29, 2009 - 1:20 am
gracias sayco por publicar el ejercicio si puedo publicar otro mas como el de los asterisco si va !!!
#2 by taki on May 29, 2009 - 8:28 am
Uff taaantos recuerdos que me llegan con esos programas que has posteado últimamente!
Y me pongo a sacar cuentas y hace casi 7 años que estudié eso mismo! Noooo que vieja estoy *snif snif
Ya no voy a visitar más tu blog por recordarme que me han pasado un poco de años por encima U_U
#3 by Psycho on May 29, 2009 - 10:52 am
@orlando en el transcurso del fin de semana subo el ejemplo de los asteriscos, y es “Psycho” ¬¬
@taki T___T
#4 by David Tavarez on May 30, 2009 - 9:44 am
mmmm, disculpa, pero ese metodo es muy poco algoritmico, te hubieras ahorrado un mundo utilizando recursividad aparte de que la idea es reutilizar codigo…
#5 by Psycho on May 30, 2009 - 10:41 am
@David Tavarez claro que lo pude hacer de otro modo, pero como la idea de estos ejemplos es para guiar a las personas que estudian conmigo. No quise hacer algo en que se confundieran mas de lo que pueden estar.
#6 by taki on June 3, 2009 - 10:52 am
@David Tavarez: Cuando yo estudiaba no nos dejaban usar técnicas que no hubiesemos visto/aprendido en la materia, y por lo que entiendo este es el caso del amigo Psycho U_U que cómo bien dice es un ejercicio con fines académicos.
#7 by Psycho on June 3, 2009 - 9:36 pm
@taki esa es la intención
#8 by NELSON on September 3, 2009 - 5:05 pm
BUENAS TARDE QUE TAL EMM ESPERO ME PUEDAN AYUDAR EN LO SIGUIENTE ESTOY COMENZANDO EN LA CARRERA DE INFORMATICA Y ME HAN PEDIDO REALIZAR DOS EJERCICIOS CON LAS SIGUIENTES CONDICIONES ES DECIR ALGORITMO PSEUDOCODIGO Y DFD DE LOS SIGUIENTES PROBLEMAS ..
1…UN USUARIO DEBE INGRESAR UN NUMERO Y SE DEBE MOSTRAR EL FACTORIAL…
2… DADO UN NUMERO DE 3 DIGITOS SABER SI ES PALINDROME
POR FAVO AYUDENME DEL PRIMERO TENGO ALGUNA IDEA DEL PSEUDO PERO NO ESTOY SEGURO Y E BUSCADO INFORMACION PERO NAH NO E CONSEGUIDO NADA INTERESANTE ESPERO ME PUEDAN AYUDAR LO AGRADECERIA MUCHISIMO
#9 by Psycho on September 3, 2009 - 5:18 pm
@Nelson para tu primer problema este ejercicio te sirve, de hecho el código solicita que el usuario ingrese un numero. Y con respecto al numero palindrome puedes buscar alguna función en C que te separe el numero de tres dígitos en un array y comparar el primer numero con el ultimo.
#10 by NELSON on September 3, 2009 - 5:24 pm
disculpa psycho mi ignorancia pero no se nada de programacion no se como empezar y mucho menos terminar estoy en el primer semestre todavia jejeje y bueno no se como realizar cada una de las cosas que me piden
#11 by Psycho on September 4, 2009 - 3:46 pm
@Nelson en esta pagina tienes un video tutorial de como hacer DFD y en este otro sitio en donde puedes descargar una aplicación para crearlos.
#12 by Gabriela on September 7, 2009 - 2:04 am
**hOla!!! Gracias por tu programa!! Me ayudo mucho!!
**
Gracias a tus explicaciones comprendo mejor el proceso del factorial
#13 by b4mv on October 4, 2009 - 5:26 pm
oye una pregunta, ¿como se expresaria el algoritmo de la operacion del factorial?
#14 by Mago de Oz on January 8, 2010 - 3:11 pm
Perdonad mi ignorancia, porque al main no se le indica que es del tipo entero, por ejemplo ( int main () ) ?
Daria igual?
#15 by Mago de Oz on January 8, 2010 - 3:27 pm
Crreo que es igual q se recuerde lo del factorial igual a 1 , al final ja que al principio del bucle ya se indica que si es mayor a 1 entre a calcularse, parece una obviedad, pero lo recalco ya que estaba haciendo pruebas con o sin esta parte.
#16 by Psycho on January 8, 2010 - 3:30 pm
@Mago de Oz al colocar **int main** lo que quieres decir es que va a retornar un numero entero cuando termine de ejecutarse el programa.