Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Nightwinds en 2 Junio 2010, 17:20 pm



Título: Tengo el siguiente fallo en mi programa que es para calcular el factorial
Publicado por: Nightwinds en 2 Junio 2010, 17:20 pm
Al ejecutar mi programa e ingresar un numero se vuelve loco el programa ya que imprime el resultado una infinidad de veces sin parar.
(Estoy utilizando C++ Builder 6)
Si el programa esta en desorden es que soy principiante.
Este es mi codigo:

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

main()
{
int x, z;

long int factorial;

clrscr();


printf("Que factorial quieres?");
scanf("%d", &x);

while(x!=0)

{factorial=1;

for (z=1; z<=x; z++) factorial=factorial*z;

printf("%d x %d= %d ",x,z,factorial*z);

};

getch();

return 0;
}


Título: Re: Tengo el siguiente fallo en mi programa que es para calcular el factorial
Publicado por: Gallu en 2 Junio 2010, 17:33 pm
Primero que nada te recomiendo que utilices la etiqueta geshi para poner tu codigo.

A simple vista parece ser que tu error está en el while , en ningún momento modificas x
ni tampoco la incializas , por consiguiente nunca será 0

Código
  1. while(x!=0) // nunca se cumple men
  2.  


Título: Re: Tengo el siguiente fallo en mi programa que es para calcular el factorial
Publicado por: VirajeCR en 2 Junio 2010, 18:45 pm
Una pregunta: ¿por qué lo haces iterativo y no recursivo?

Saludos.


Título: Re: Tengo el siguiente fallo en mi programa que es para calcular el factorial
Publicado por: Akai en 2 Junio 2010, 19:35 pm
Una pregunta: ¿por qué lo haces iterativo y no recursivo?

Saludos.

dado el nivel que se asume con ese código ( main sin ser int, el while mal expresado) seguramente todavía no sabe lo que es la recursividad, y podría asegurar que tampoco funciones.


Título: Re: Tengo el siguiente fallo en mi programa que es para calcular el factorial
Publicado por: VirajeCR en 2 Junio 2010, 20:36 pm
Umm... Importante observación. Siento mucho haberla pasado por alto.

Saludos.


Título: Re: Tengo el siguiente fallo en mi programa que es para calcular el factorial
Publicado por: nicolas_cof en 3 Junio 2010, 00:46 am
Ademas de lo ya mencionado por Akai, no hace falta la inclusion de la libreria conio debido a que es obsoleta y ademas no es estandar.

Si solo la usas para limpiar pantalla, puedes usar lo siguiente...

Código:
#include <stdlib.h> // libreria necesaria para usar la funcion system()
...
system( "cls" ); // Windows
system( "clear" ); // Linux
...

Yo te recomendaria leer, ya que por el codigo se nota que muchos conceptos no estan muy en claro.

El.lenguaje.de programación.C.Segunda.Edición.Kernighan&Ritchie (http://www.4shared.com/document/8E7Fz1Su/Ellenguajede_programacinCSegun.html)

Salu10


Título: Re: Tengo el siguiente fallo en mi programa que es para calcular el factorial
Publicado por: Nightwinds en 3 Junio 2010, 01:14 am
Si gracias es que apenas estoy empesando.
Me falta afinar muchas cosas.
Ya resolcvi el problema que tenia Gracias.
No saben el nombre de algun libro o guia que me recomienden???


Título: Re: Tengo el siguiente fallo en mi programa que es para calcular el factorial
Publicado por: .:BlackCoder:. en 3 Junio 2010, 01:27 am
Yo recomiendo el de Joyanes Aguilar, "Programacion en C++"... Y "Como programar en C/C++" de deitel & deitel... Y una pagina seria, la de cconclase y cplusplus (si sabes ingles) ...