c语言中做除法和取余操作有以下几点规定:
q = a / b;
r = a % b;
1. 最重要一点:q * b + r == a;即 商 乘以 除数 加上 余数 等于 被除数;
2. 改变被除数a 的正负号,希望商q 的符号也随之改变,但商q 的绝对值不会改变;
3. 余数和被除数的正负号相同;
#include <stdio.h> int main(int argn ,char *argv[]) {
// (-1) * (-2) + 1 = 3
// 余数1和被除数3符号相同
int r = 3 / (-2); //-1 int rr = 3 % (-2); //1
// 1 * 2 + 1 = 3
// 除数符号改变,商的符号也随之改变
// 余数1 和 被除数3 符号相同
r = 3 / 2; //1 rr = 3 % 2; //1
// (-1) * 2 + (-1) = -3;
// 被除数符号改变,商r = -1也随之改变;
// 余数-1 和 被除数-3 符号相同
r = -3 / 2; //-1 rr = -3 % 2; //-1 return 0; }