Anuncios Google

Extraño error al obtener el resto

int divisible(double numeross){
    int divisor = 2;
       while ((numeross % divisor) != 0)&& (numeross > divisor)){
             divisor++;
             }
             if (numeross % divisor != 0){
             return divisor;
             }
             else{
                  return 1;
                  }
                  }

 

Me sale un error del compilador:

 

main.c:26: error: invalid operands to binary %
main.c:26: error: syntax error before '(' token

 

Pero que yo sepa, el operador del resto esta bien escrito... ¿No?

 


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de The Dark Master

Pon esta línea asi: while

Pon esta línea asi:

  while (((numeross % divisor) != 0)&& (numeross > divisor)){

Salu2


No, el problema es que

No, el problema es que calcular el resto de una división entre numeros con coma flotante es absurdo.

 

Para usar %, tienen que ser int los operandos. Los 2. En todo caso, donde pone "numeross", pon "((int)numeross)".

 

 

PD: Usar floats en DS es lo peor que puedes imaginarte para su rendimiento, y usar doubles peor aún.

Craso error XD. Solucionado

Craso error XD. Solucionado pues, ¡tranks!.

 

PD: En verdad no es para la ds sino para pc. Pero esque esta web esta mas activa que scenebeta...

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.