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

Call of nonfunction

Estas en el tema de Call of nonfunction en el foro de C/C++ en Foros del Web. Por que me da ese error para las líneas: printf("%d", entero(decimal)); y factorial *= factorial(--entero); éste es el código: Código PHP: #include <stdio.h> #define TRUE 1 #define FALSE 0 int entero ...
  #1 (permalink)  
Antiguo 09/07/2008, 09:36
 
Fecha de Ingreso: junio-2002
Ubicación: España
Mensajes: 348
Antigüedad: 21 años, 10 meses
Puntos: 8
Call of nonfunction

Por que me da ese error para las líneas:
printf("%d", entero(decimal));
y
factorial *= factorial(--entero);

éste es el código:
Código PHP:
#include <stdio.h>

#define TRUE 1
#define FALSE 0

int entero(float);
int factorial(int);

void main(int argccharargv[]){
   
int seguir TRUE;
   
int opcion 0;

   
float decimal 0.0;
   
int entero 0;

   do{
      
fprintf(stdout"1. Entero \n2. Factorial\n4. Salir\n\tIntroduce una opción: ");
      
scanf("%d", &opcion);
      switch(
opcion){
         case 
1:
            
printf("Introduce un número decimal: ");
            
scanf("%f", &decimal);
            
printf("%d"entero(decimal));
            break;
         case 
2:
            
printf("Introduce un número: ");
            
scanf("%d", &entero);
            
printf"%d"factorial(entero));
            break;
         case 
4:
            
seguir FALSE;
            break;
         default:
            
printf("Opción no válida");
      }
   }while(
seguir);
}

int entero(float decimal){
   return 
decimal;
}
int factorial(int entero){

   
int factorial=1;
   if (
entero==2)
      return 
factorial;
   else
      
factorial *= factorial(--entero);

   return 
factorial;

__________________
Bicis nuevas y de segunda mano: Bicibid
  #2 (permalink)  
Antiguo 09/07/2008, 12:29
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Respuesta: Call of nonfunction

No puedes llamar a una variable igual que la función, usa otro nombre
Código:
int factorial(int entero){

   int factorial=1;
   if (entero==2) // OJO 2! = 2
      return factorial;
   else
      factorial *= factorial(--entero);

   return factorial;
}
Por ejemplo:
Código:
int factorial(int entero){

   int fact=1;
   if (entero==1 || entero==0)
      return fact;
   else
      fact *= factorial(--entero);

   return fact; // Esto nunca se ejecuta
}

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #3 (permalink)  
Antiguo 10/07/2008, 01:21
 
Fecha de Ingreso: junio-2002
Ubicación: España
Mensajes: 348
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: Call of nonfunction

es cierto, seré idiota!!!
Muchas gracias Lucifer
__________________
Bicis nuevas y de segunda mano: Bicibid
  #4 (permalink)  
Antiguo 10/07/2008, 08:00
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Respuesta: Call of nonfunction

Cita:
Iniciado por ZeroZ Ver Mensaje
es cierto, seré idiota!!!
Muchas gracias Lucifer
De nada, pasa hasta en las mejores familias...

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
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 13:01.