Hola qué tal, nuevamente yo por aquí, lo que pasa es que tengo un ligero problemilla con esta función, se supone que me debe dar el numero factorial de un numero que ingrese, pero no necesito que me imprima sólo el resultado, si no algo parecido a esto, se que va con un printf que se debe poner dentro de la función, el problema es que no me sale, esto es lo que llevo hasta el momento.
Si me pueden decir como insertar una imagen se los agradeceria mucho.
#include <stdlib.h>
#include <stdio.h>
int factorial(int n)
{
if(n<0)
return 0;
else
if(n>1)
return n*factorial(n-1);
return 1;
}
void main()
{
int n;
printf("Ingresa un numero del cual desees obtener su factorial");
scanf("%d",&n);
factorial(n);
system("PAUSE");
}
(http://file:///C:/Users/Gateway/Pictures/Factorial.jpg)
Este es el codigo, no el anterior.
#include <stdlib.h>
#include <stdio.h>
int factorial(int n)
{
if(n<0)
return 0;
else
if(n>1)
return n*factorial(n-1);
return 1;
}
void main()
{
int n;
printf("Ingresa un numero del cual desees obtener su factorial");
scanf("%d",&n);
printf("El factorial es %d", factorial(n);
system("PAUSE");
}
int factorial(int n)
La función factorial te devuelve un entero... recógelo en el main y muéstralo con un printf.
Te falta un paréntesis en
printf("El factorial es %d", factorial(n));
Y la función parece estar correctamente implementada :huh:
Si, la he probado, y definitivamente funciona bien
#include <stdlib.h>
#include <stdio.h>
int factorial(int n) {
if(n<0)
return 0;
else
if(n>1)
return n*factorial(n-1);
return 1;
}
int main(){
int n;
printf("Ingresa un numero del cual desees obtener su factorial: ");
scanf("%d",&n);
printf("\nEl factorial es %d\n", factorial(n));
system("PAUSE");
}
Ingresa un numero del cual desees obtener su factorial: 7
El factorial es 5040
Presione una tecla para continuar . . .
¿Y cómo le hago para que en vez de arrojarme el resultado, me arroje el procedimiento del factorial paso por paso? Es para dar a entender al que ve el resultado en pantalla cómo funciona el factorial de un numero.
Cita de: Albertocn en 19 Febrero 2014, 14:46 PM
¿Y cómo le hago para que en vez de arrojarme el resultado, me arroje el procedimiento del factorial paso por paso? Es para dar a entender al que ve el resultado en pantalla cómo funciona el factorial de un numero.
Pon un printf dentro de la función factorial... pero dudo que eso te aporte algo.
._____.
Cita de: Albertocn en 19 Febrero 2014, 14:46 PM
¿Y cómo le hago para que en vez de arrojarme el resultado, me arroje el procedimiento del factorial paso por paso? Es para dar a entender al que ve el resultado en pantalla cómo funciona el factorial de un numero.
Citar
Ingresa un numero del cual desees obtener su factorial: 8
El factorial de 8 es: 8! = 8*7*6*5*4*3*2*1 = 40320
Presione una tecla para continuar . . .
Aporta qué diablos calcula factorial para alguien que no lo sepa:#include <stdio.h>
int factorial(int n) {
if(n<=1){
printf("1");
return 1;
}
else if(n>1){
printf("%d*",n);
return n*factorial(n-1);
}
}
int main(){
int n;
printf("Ingresa un numero del cual desees obtener su factorial: ");
scanf("%d",&n);
if(n<0){
printf("El numero ha de ser mayor o igual a cero");
return 1;
}
printf("\nEl factorial de %d es: %d! = ",n,n);
printf(" = %d\n", factorial(n));
return 0;
}
¡¡¡¡ Saluditos! ..... !!!!
(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)