Ayuda do-while

Iniciado por NicolasPileci, 25 Agosto 2016, 19:29 PM

0 Miembros y 1 Visitante están viendo este tema.

NicolasPileci

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

ivancea96

No debería dar ningún problema. ¿Qué tienes después? ¿Te aseguraste de que el código que va después es correcto?

palacio29

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.

AlbertoBSD

Tal vez tiene un

system("pause");

Saludos
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

NicolasPileci

#4
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.

ivancea96

int CalcularFactorial (int Num)
{
    int i, Pro=1;
    for(i=2;i=Num;i++)
    {
        Pro = i;
    }
    return Pro;
}

Querrás poner "i <= Num".

NicolasPileci

Hola, buen día,

El código me permite ingresar los datos, pero no calcula la combinatoria.

Gracias!

AlbertoBSD

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!
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW