Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: palacio29 en 14 Febrero 2017, 15:24 pm



Título: Ejercicio Básico de Operadores en C
Publicado por: palacio29 en 14 Febrero 2017, 15:24 pm
Hola

Tengo el siguiente código

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6. double num=123456789.56;
  7. int x,r;
  8. x=num;
  9.  
  10. r=x%100000/1000/7;
  11.  
  12. printf("%d",r);
  13.  
  14.    return 0;
  15. }

La idea el ejercicio es que sepamos que operacion hay que ejecutar primero...Estuve leyendo sobre precedencia de operadores y se dice que de izquierda a derecha viene la multiplicacion, luego la division y luego el %.

El tema es que intento hacer todas las divisiones posibles ... osea 100000/1000 y luego ese resultado / 7 y luego hago el %....y me da cualquier cosa.
El resultado tiene que ser 8 pero no llego a ese resultado...algo estoy haciendo mal o nose porque operacion empezar..


Título: Re: Ejercicio Básico de Operadores en C
Publicado por: palacio29 en 14 Febrero 2017, 15:43 pm
Y metiendo paréntesis?

Código
  1. r=x%(100000/1000/7);

Saludos, ;)

Esta mal igual porque tendria que dar 8 y poniendo parentesis da 1.


Título: Re: Ejercicio Básico de Operadores en C
Publicado por: ivancea96 en 14 Febrero 2017, 15:56 pm
Multiplicación, división y módulo están al mismo nivel. Luego, se ejecutan de izquierda a derecha.

Código:
123456789 % 100000 / 1000 / 7
Modulo
56789 / 1000 / 7
Entre 1000
56
Entre 7
8


Título: Re: Ejercicio Básico de Operadores en C
Publicado por: palacio29 en 14 Febrero 2017, 19:46 pm
Multiplicación, división y módulo están al mismo nivel. Luego, se ejecutan de izquierda a derecha.

Código:
123456789 % 100000 / 1000 / 7
Modulo
56789 / 1000 / 7
Entre 1000
56
Entre 7
8

Genial! ahora me quedo claro...pense que la multiplicacion y la division venia primero que el modulo.


Título: Re: Ejercicio Básico de Operadores en C
Publicado por: ivancea96 en 14 Febrero 2017, 20:50 pm
Para aclarar, que me olvidé: http://en.cppreference.com/w/c/language/operator_precedence (http://en.cppreference.com/w/c/language/operator_precedence)
Ese es e orden. Los que están en el mismo grupo, se resuelven "a la vez" (siguiendo el orden izquierda-derecha o derecha-izquierda que aparece a la derecha)