问答详情
源自:3-2 算术运算符

然而求余得y=%d,而不是x%y=1,问题在哪呢?

#include <stdio.h>
int main()
{
int x,y;
x = 10;
y = -3;
printf("x+y=%d\n", x+y);
printf("x-y=%d\n", x-y);
printf("x*y=%d\n", x*y);
printf("x/y=%d\n",x/y );
printf("x%y=%d\n", x%y);
return 0;
}

提问者:本圣贤4197936 2016-10-20 00:09

个回答

  • 无厘头
    2016-10-20 08:53:36

    C99 规定,如果 % 左边的操作数是正数,则模除的结果为正数或零;如果 % 左边的操作数是负数,则模除的结果为负数或零。例如:

              10 % 3       // 余 1
              10 % -3      // 余 1
              -10 %3      // 余 -1
              -10 % -3     // 余 -1