En Python et Ruby, la division des entiers signés est tronquée vers l'infini négatif, et le modulus des entiers signés a le même signe que le second opérande :
>>> (-41) / 3
-14
>>> (-41) % 3
1
Cependant, en C et en Java, la division des entiers signés est tronquée vers 0, et le modulus des entiers signés a le même signe que le premier opérande :
printf("%d\n", (-41) / 3); /* prints "-13" */
printf("%d\n", (-41) % 3); /* prints "-2" */
Quelle est la méthode la plus simple et la plus efficace en C pour effectuer le même type de division et de modulus qu'en Python et Ruby ?