Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/09/2012, 18:19
cesar_casla
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 4 meses
Puntos: 94
Respuesta: Problema de ejecucion.

Hola! el problema es que para factorial2 la funcion factorial no esta declarada, es decir tenias que haber puesto antes la funcion factorial. Pero si haces esto va a pasar lo mismo: para factorial no va a estar declarado la funcion factorial2
Para evitar estos inconveniente primero se declaran los prototipos de las funciones:

Código C++:
Ver original
  1. #include <iostream>
  2.     #include<stdio.h>
  3.     /* prototipos de funciones */
  4.       int factorial2(int n);
  5.      int factorial(int n);
  6.  
  7.  
  8.     int factorial2(int n) {
  9.       if(n<2)
  10.         return 1;
  11.       else
  12.         return n * factorial(n-1);
  13.     }
  14.      
  15.     int factorial(int n) {
  16.         return n * factorial2(n-1);
  17.     }
  18.     int main(){
  19.       int num=5;
  20.      
  21.       printf("\tEl resultado es: %i\n", factorial(num)); //Llama la funcion e imprime resultado
  22.         return 0;
  23.     }
Incluyendo estos prototipos las funciones son visibles entre si. De todos formas la mayoria de la gente suele seguir este orden para hacer un programa:

1º header y defines
2º prototipos de funciones
3º main
4º funciones


Saludos