Precedencia reglas son muy molesto para recordar, por lo que yo también prefiero usar soportes de desambiguar Intento seguir el consejo de "escribir código para personas primero, computadoras en segundo lugar". Sin embargo, hay una regla mnemotécnica interesante (que he aprendido de los libros de Bruce Eckel) para recordar (algunas de) las reglas: "Úlcera adictos realmente como CA montón":
Ulcer - Unary (+, -, ++, --, !)
Addicts - Arithmetic (and shift) (+, -, *, /, %, <<, >>)
Really - Relational (<, >, ==, <=, >=, !=)
Like - Logical (and bitwise) (&&, ||, &, |, ^)
C - Conditional (? :) <- this is the conditional ternary operator
A lot - Assignment (=, *=, +=, ...)
No es se apretó, operadores de bits perfectos y tenemos que saber que los operadores de multiplicación (*, /,%) tienen prioridad sobre los de suma (+, -).
+1 solución a prueba de tontos en cualquier idioma – cjk
Buena respuesta al redondeo: lamentablemente no conozco el resultado esperado. ¿Alguna idea de por qué el implementador utilizaría la división de coma flotante en lugar de la división de enteros, evitando el reparto? – Ben
@Ben; imagina que el conteo es 3. '1/3' (usando un entero) es' 0'; '0 * 100' es' 0', que no es la respuesta deseada. '1/(float) 3' es' 0.33', etc., dando '33' después de la multiplicación y el lanzamiento - ¿Supongo que es un%? En realidad, hubiera usado 'decimal'. –