| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
kykyou
Registrado: 02 Sep 2004 Mensajes: 67 Ubicación: santiago, Chile..
| Publicado: 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 
| 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
| Publicado: 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 
byeee |
| | Volver arriba | |  | alp

Registrado: 12 Abr 2004 Mensajes: 413
| Publicado: 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 | |  | | kykyou
Registrado: 02 Sep 2004 Mensajes: 67 Ubicación: santiago, Chile..
| Publicado: 01/10/2004 2:43 pm | | | Título: |
| gracias!  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  aprendi mucho con este ejercicio.. nos vemos! |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |