Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Cómo llamar a main de forma recursiva?

Estas en el tema de Cómo llamar a main de forma recursiva? en el foro de C/C++ en Foros del Web. Bueno... tengo un ejercicio que me pide esto: Cita: ¿Será posible llamar a main de forma recursiva? Escriba un programa que contenga una función main. ...
  #1 (permalink)  
Antiguo 30/05/2011, 01:36
 
Fecha de Ingreso: abril-2011
Mensajes: 224
Antigüedad: 13 años
Puntos: 8
Pregunta Cómo llamar a main de forma recursiva?

Bueno... tengo un ejercicio que me pide esto:

Cita:
¿Será posible llamar a main de forma recursiva? Escriba un programa que contenga una función main. Incluya la variable static cuenta, inicializada en 1. Postincremente e imprima el valor de cuenta cada vez que se invoque a main. Ejecute su programa. ¿Qué sucede?
Bueno pues... con esa información hice este programa...

Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.     static int cuenta = 1;
  6.    
  7.     printf("%d\n", cuenta++);
  8.    
  9.     if(cuenta == 900000)
  10.          return cuenta;
  11.     else
  12.          return main();
  13. }

Y ammm... sólo salieron numeros incrementandose rapido en la consola... y cuando llegó a 43389 salió "El programa dejó de funcionar".

Lo hice bien? XD
  #2 (permalink)  
Antiguo 30/05/2011, 03:42
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: Cómo llamar a main de forma recursiva?

Creo que es porque el int sólo puede almacenar hasta un número determinado, no hasta 90.000. Pon en la condición cuenta == 100, que para ver el funcionamiento vale igual, o si no, utiliza otro tipo de datos.
  #3 (permalink)  
Antiguo 30/05/2011, 10:11
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Cómo llamar a main de forma recursiva?

En mi cumputadora llega hasta el numero 261854 y despues tira un Violacion de segmento. No es un problema de estar llamando recursivamente al main.

Es un problema de memoria que no permite tantos llamados recursivos.

Sobre cuanto soporta un entero. Una variable del tipo int de 32 bit esta entre - 2,147,483,647 y 2,147,483,647. Asi que 900.000 es un numero posible de almacenar

Etiquetas: main, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:43.