Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: NicolasPileci en 25 Agosto 2016, 19:29 PM

Título: Ayuda do-while
Publicado por: NicolasPileci en 25 Agosto 2016, 19:29 PM
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
Título: Re: Ayuda do-while
Publicado por: ivancea96 en 25 Agosto 2016, 19:56 PM
No debería dar ningún problema. ¿Qué tienes después? ¿Te aseguraste de que el código que va después es correcto?
Título: Re: Ayuda do-while
Publicado por: palacio29 en 26 Agosto 2016, 03:38 AM
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.
Título: Re: Ayuda do-while
Publicado por: AlbertoBSD en 26 Agosto 2016, 14:57 PM
Tal vez tiene un

system("pause");

Saludos
Título: Re: Ayuda do-while
Publicado por: NicolasPileci en 26 Agosto 2016, 15:29 PM
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.
Título: Re: Ayuda do-while
Publicado por: ivancea96 en 26 Agosto 2016, 15:44 PM
int CalcularFactorial (int Num)
{
    int i, Pro=1;
    for(i=2;i=Num;i++)
    {
        Pro = i;
    }
    return Pro;
}

Querrás poner "i <= Num".
Título: Re: Ayuda do-while
Publicado por: NicolasPileci en 31 Agosto 2016, 20:55 PM
Hola, buen día,

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

Gracias!
Título: Re: Ayuda do-while
Publicado por: AlbertoBSD en 31 Agosto 2016, 21:02 PM
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!