Autor
|
Tema: Fallo y no se cual (Leído 4,230 veces)
|
Choke1
Desconectado
Mensajes: 38
|
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; } } }
|
|
|
En línea
|
|
|
|
avesudra
Desconectado
Mensajes: 724
Intentando ser mejor cada día :)
|
No somos adivinos, ¿qué pasa concretamente? Para publicar código colócalo entre las etiquetas GeSHi para que te quede tal que así: int multiplos(int min,int max,int num){ int i; for(i = min; i < max; i++){ if(num % i == 0){ return i; } } }
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.
|
|
|
En línea
|
Regístrate en
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
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): int multiplos(int min,int max,int num) { int i; for (i = min; i < max; i++){ if (num % i == 0){ return i; /* Valor de retorno si se cumple la condicion */ } } /* Aqui se debe indicar el valor de retorno en caso de no terminar la funcion en el bucle */ }
Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
Choke1
Desconectado
Mensajes: 38
|
|
|
|
En línea
|
|
|
|
engel lex
|
tu programa tiene main y tiene el prototipo de la funcion antes que el main?
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Choke1
Desconectado
Mensajes: 38
|
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);
|
|
|
En línea
|
|
|
|
engel lex
|
el prototipo debe ser idéntico a la definición de la función, el prototipo debe ser int multiplos(int min,int max,int num);
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
OnTheCore
Desconectado
Mensajes: 10
|
el prototipo debe ser idéntico a la definición de la función, el prototipo debe ser 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.
|
|
« Última modificación: 4 Enero 2015, 20:31 pm por OnTheCore »
|
En línea
|
|
|
|
Choke1
Desconectado
Mensajes: 38
|
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
|
|
|
En línea
|
|
|
|
OnTheCore
Desconectado
Mensajes: 10
|
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.
|
|
|
En línea
|
|
|
|
|
|