Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Choke1 en 4 Enero 2015, 14:58 pm



Título: Fallo y no se cual
Publicado por: Choke1 en 4 Enero 2015, 14:58 pm
Me da fallo en esta funcion pero no se cual es:

int multiplos(int min,int max,int num){
   int i;
   for(i=min;i<max;i++){
      if(num%i==0){
         return i; 
         }       
     }       
}


Título: Re: Fallo y no se cual
Publicado por: avesudra en 4 Enero 2015, 15:59 pm
No somos adivinos, ¿qué pasa concretamente? Para publicar código colócalo entre las etiquetas GeSHi para que te quede tal que así:
Código
  1. int multiplos(int min,int max,int num){
  2.   int i;
  3.   for(i = min; i < max; i++){
  4.      if(num % i == 0){
  5.         return i;
  6.         }      
  7.     }      
  8. }
Aunque suponiendo que quieras averiguar todos los múltiplos debes devolver un array no el primer entero que sea múltiplo, no se si me explico.

Un saludo.


Título: Re: Fallo y no se cual
Publicado por: rir3760 en 4 Enero 2015, 16:05 pm
El mensaje de error se genera porque no indicas el valor de retorno si el numero a verificar no es múltiplo de ninguno de los números en el intervalo [min, max):
Código
  1. int multiplos(int min,int max,int num)
  2. {
  3.   int i;
  4.  
  5.   for (i = min; i < max; i++){
  6.      if (num % i == 0){
  7.         return i; /* Valor de retorno si se cumple la condicion */
  8.      }
  9.   }
  10.  
  11.   /* Aqui se debe indicar el valor de retorno en caso de no terminar la funcion en el bucle */
  12. }

Un saludo


Título: Re: Fallo y no se cual
Publicado por: Choke1 en 4 Enero 2015, 17:35 pm
Nada tampoco mira:

http://subefotos.com/ver/?a93318f16842cd2769ed853af53d62ddo.png#codigos


Título: Re: Fallo y no se cual
Publicado por: engel lex en 4 Enero 2015, 17:37 pm
tu programa tiene main y tiene el prototipo de la funcion antes que el main?


Título: Re: Fallo y no se cual
Publicado por: Choke1 en 4 Enero 2015, 17:45 pm
tu programa tiene main y tiene el prototipo de la funcion antes que el main?

si el prototipo es este:

int multiplos (int,int,int);


Título: Re: Fallo y no se cual
Publicado por: engel lex en 4 Enero 2015, 17:46 pm
el prototipo debe ser idéntico a la definición de la función, el prototipo debe ser

Código
  1. int multiplos(int min,int max,int num);


Título: Re: Fallo y no se cual
Publicado por: OnTheCore en 4 Enero 2015, 20:28 pm
el prototipo debe ser idéntico a la definición de la función, el prototipo debe ser

Código
  1. int multiplos(int min,int max,int num);
No necesariamente, con declarar el tipo esta bien. El usuario lo declaro bien, pero claro, es mejor practica declararlo como vos lo hiciste.

EDITO: OP, fijate que retornas solo si num%i==0. Que pasa si nunca se cumple esa condicion? el valor de retorno va a ser inesperado. Pone un return al final que abarque el no cumplimiento de la condicion.


Título: Re: Fallo y no se cual
Publicado por: Choke1 en 4 Enero 2015, 22:32 pm
Solucione el fallo, me podéis insultar si queréis jeje, la cosa es que había definido una constante que se llamaba max y claro en la funcion ponia también max de nombre de una variable XD


Título: Re: Fallo y no se cual
Publicado por: OnTheCore en 5 Enero 2015, 02:06 am
Solucione el fallo, me podéis insultar si queréis jeje, la cosa es que había definido una constante que se llamaba max y claro en la funcion ponia también max de nombre de una variable XD
Nadie va a insultarte porque son errores comunes de principiante y de eso se aprende. Mi consejo para la proxima vez, es que las constantes las escribas en mayusculas y las variables en minuscula.


Título: Re: Fallo y no se cual
Publicado por: Choke1 en 5 Enero 2015, 13:47 pm
Nadie va a insultarte porque son errores comunes de principiante y de eso se aprende. Mi consejo para la proxima vez, es que las constantes las escribas en mayusculas y las variables en minuscula.
Ok gracias lo tendre en cuenta