Test Foro de elhacker.net SMF 2.1

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

#include <stdio.h>
#include <stdlib.h>

int main()
{
double num=123456789.56;
int x,r;
x=num;

r=x%100000/1000/7;

printf("%d",r);

    return 0;
}


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
Cita de: ~0xefro]~ link=topic=465060.msg2108593#msg2108593 date=1487082698]
Y metiendo paréntesis?

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.

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
Cita de: 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.

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)