Hola a todos, buenos días,
El código siguiente:
int M, N, Com;
do
{
printf("\nIngrese el primer numero entero (mayor o igual a 0): \n\n");
scanf("%d",&N);
printf("\nIngrese el segundo numero entero (mayor que el primero): \n\n");
scanf("%d",&M);
}
while(N<0 || M<N);
Me permite ingresar las dos variables pero luego el cursor se queda frió y no continua el programa.
Si pudieran brindarme su ayuda, estaría muy agradecido.
Saludos!
MOD EDIT: etiquetas GeSHi
No debería dar ningún problema. ¿Qué tienes después? ¿Te aseguraste de que el código que va después es correcto?
Porque quizas no tenes mas codigo que ese?... :rolleyes:
Si vos cargas las 2 variables despues el programa no va a hacer nada..por lo que vemos tu codigo esta bien pero faltaria ver el resto.
Tal vez tiene un
system("pause");
Saludos
Estimado, adjunto el código completo:
#include <stdio.h>
#include <stdlib.h>
int CalcularCombinatoria (int, int);
int CalcularFactorial (int);
int main()
{
system ("color 0a");
int M, N, Com;
do
{
printf("\nIngrese dos numeros enteros (el 1ro mayor 0 igual a 0 y el segundo mayor o igual al primero):\n\n");
scanf("%d%d",&N,&M);
}
while(N<0 || M<N);
Com = CalcularCombinatoria(N, M);
printf("\t\tLa combinatoria de %d y %d es: %d.",N,M,Com);
return 0;
}
int CalcularCombinatoria(int N, int M)
{
int A, B;
A = CalcularFactorial(N);
B = CalcularFactorial(M);
C = (B / (A * (B - A)));
return C;
}
int CalcularFactorial (int Num)
{
int i, Pro=1;
for(i=2;i=Num;i++)
{
Pro = i;
}
return Pro;
}
La idea del programa es efectuar la combinatoria de dos numeros.
Gracias!
MOD EDIT: Etiquetas GeSHi por segunda vez.
int CalcularFactorial (int Num)
{
int i, Pro=1;
for(i=2;i=Num;i++)
{
Pro = i;
}
return Pro;
}
Querrás poner "i <= Num".
Hola, buen día,
El código me permite ingresar los datos, pero no calcula la combinatoria.
Gracias!
Tu codigo de combinatoria tiene detalles:
Tu codigo..int CalcularFactorial (int Num)
{
int i, Pro=1;
for(i=2;i=Num;i++)
{
Pro = i;
}
return Pro;
}
Problema numero uno el = deberia de ser <=
for(i=2;i<=Num;i++)
Ahora esta linea:
Pro = i;
Por se iguala a i y ya? deberia de ser += no?
Pro += i;
Entonces debes de tener que:
int CalcularFactorial (int Num)
{
int i, Pro=1;
for(i=2;i<=Num;i++)
{
Pro += i;
}
return Pro;
}
Ahora ten en cuentra los limites de los datos si tu numero Num es muy grande va a tardar mucho en completar las iteraciones y ademas ten en cuenta los limites de 2^31 y 2^32 de los numeros enteres sin signo y con signo respectivamente.
Saludos!