本帖最后由 hoy0a1d 于 2020-3-14 18:46 编辑
这压根不是运算优先级的问题,这是整数除法运算取整问题,将你两个代码每一步做了注释,你看一下
1、代码一
[C++] 纯文本查看 复制代码 int $ = 93;
printf("%d", $ / 20); // 93 / 20 = 4
$ -= 20 * $ / 20; // $ = 93 - 20 * 93 / 20 = 0
printf("%d", $ / 10); // 0 / 10 = 0
$ -= 10 * $ / 10; // $ = 0 - 10 * 0 / 10 = 0
printf("%d", $ / 5); // 0 / 5 = 0
$ -= 5 * $ / 5; // $ = 0 - 5 * 0 / 5 = 0
printf("%d", $ / 1); // 0 / 1 = 0
2、代码二
[C++] 纯文本查看 复制代码 int money = 93;
printf("%d", money / 20); // 93 / 20 = 4
money -= 20 * (money / 20); // money = 93 - 20 * (93 / 20) = 93 - 20 * 4 = 13
printf("%d", money / 10); // 13 / 10 = 1
money -= 10 * money / 10; // money = 13 - 10 * (13 / 10) = 13 - 10 * 1 = 3
printf("%d", money / 5); // 3 / 5 = 0
money -= 5 * money / 5; // money = 3 - 5 * (3 / 5) = 3 - 5 * 0 = 3
printf("%d", money / 1); // 3 / 1 = 3 |