/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

ayuda urgente, por favor !!!

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
kykyou



Registrado: 02 Sep 2004
Mensajes: 67
Ubicación: santiago, Chile..

MensajePublicado: 30/09/2004 6:46 pm
Título: ayuda urgente, por favor !!!

hola:
hice un algoritmo para calcular una combinatoria. el compilador no arroja ningun error pero el programa no funciona.
les agradeceria mucho que me dieran una mano con esto, pues me urge terminarlo rapido. gracias!
aqui esta el programa que hice Wink

Código:


#include<stdio.h>
#include<math.h>
#include<conio.h>

int fact(int x)
{
   int i,fact;
   fact=1;
   for (i=1; i=x; i++)
   {
      fact=fact*i;
   }
   return (fact);
}


int comb(int n, int k)
{
   int c;
   int fact;
   c= fact(n)/(fact(k) * fact(n-k));
   return (c);
}

void main()
{
   int n,k,c,combinatoria;
   printf("\nIngrese el valor N del necesario para la       combinatoria");
   scanf("%d",&n);
   printf("\nIngrese el valor K de la combinatoria");
   scanf("%d",&k);
   clrscr();
   combinatoria=c;
   printf("\nEl valor resultante de la combinatoria es : %d",(float)combinatoria);
   printf("presione cualquier tecla para continuar");
   getch();
}


Volver arriba
Diabliyo



Registrado: 14 Abr 2004
Mensajes: 314
Ubicación: En la Luna

MensajePublicado: 30/09/2004 10:38 pm
Título:

Hola:

Pues segun veo, NUNCA llamas a las funciones que declaraste !!! .... Ademas nose porke NO te arorje ERRORES ni WARNINGS ya que ahi muchos errores !!!

Te recomiendo que expliques BIEN A BIEN cual va a hacer el funcionamiento, ya que a simle vista no te podria ayudar... ni siquiera adivinando Razz Very Happy

byeee
Volver arriba
alp



Registrado: 12 Abr 2004
Mensajes: 413

MensajePublicado: 01/10/2004 9:56 am
Título:

Hola.

El programa tiene varios errores.

En primer lugar, en la función que calcula el factorial, debes utilizar otro tipo de variable, ya que si utilizas un int, en 16 bits el valor máximo que puedes alcanzar es 65535, por lo que el factorial de 9 ya te daría problemas.

Por otro lado, en la función comb(), declaras una variable fact, que se corresponde con el nombre de la función que calcula el factorial, y no la utilizas para nada.

Finalmente, en la función main, pides los dos valores n y k, y asignas a la variable combinatoria el valor de la variable c, que no ha sido asignada, por lo que no tiene sentido. Además, en el printf, le haces un cast a float, pero a printf le indicas que debe imprimir un entero.

He hecho algunas modificaciones, cambiando las variables resultantes del factorial y la combinatoria a float. Te pongo el código.
Código:
#include<stdio.h>
#include<math.h>
#include<conio.h>

float fact(int x)
{
   int i;
   float f = 1;

   for (i = 1; i <= x; i++)
   {
     f = f * i;
   }
   return (f);
}


float comb(int n, int k)
{
   float c;
   c= fact(n)/(fact(k) * fact(n-k));
   return (c);
}

void main()
{
   int n,k;
   float combinatoria;

   printf("\nIngrese el valor N del necesario para la combinatoria: ");
   scanf("%d",&n);

   printf("\nIngrese el valor K de la combinatoria: ");
   scanf("%d",&k);

   clrscr();
   combinatoria=comb(n,k);
   printf("\nEl valor resultante de la combinatoria es : %.2f",combinatoria);
   printf("\n\npresione cualquier tecla para continuar");
   getch();
}


Una última cosa: no utilices variables que tengan el mismo nombre que la función (el caso de la función fact() y la variable fact), ya que puede inducir a errores.

Un saludo.
Volver arriba
Yahoo Messenger
kykyou



Registrado: 02 Sep 2004
Mensajes: 67
Ubicación: santiago, Chile..

MensajePublicado: 01/10/2004 2:43 pm
Título:

gracias! Wink
me sirvio mucho las aclaraciones de alp, pero de todos modos les doy las gracias a los dos por dedicar su tiempo a resolver dudas Wink
aprendi mucho con este ejercicio.. nos vemos!
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com