整理以前的代码,发现一个取模的测试用例,针对正负进行了讨论。
#include <stdio.h> int main(int argc, char **argv) { int x,y; printf("Input X >0 and Y>0 \n"); scanf("%d%d",&x,&y); printf("%d%%%d=%d , %d/%d=%d\n",x,y,x%y,x,y,x/y); y= -y; printf("%d%%%d=%d , %d/%d=%d\n",x,y,x%y,x,y,x/y); x=-x; printf("%d%%%d=%d , %d/%d=%d\n",x,y,x%y,x,y,x/y); y = -y; printf("%d%%%d=%d , %d/%d=%d\n",x,y,x%y,x,y,x/y); return 0; }
测试结果为
Input X >0 and Y>0 34 6 34%6=4 , 34/6=5 34%-6=4 , 34/-6=-5 -34%-6=-4 , -34/-6=5 -34%6=-4 , -34/6=-5
x%y=a*y+b
a的符号与x一致即可。
b的符号与x*y的符号保持一致.