C++算术运算符的问题
[code=C/C++][/code]int main()
{
cout<<21%(-5)<<endl;
return 0;
}
这段代码的运行结果是1;书上说可能是1或-4(C++primer)。我想知道为什么会出现-4?
还有书上说若操作数的结果为随分子的符号,则除出来的结果向零取整。这里没有小数怎么有向零取整??
[解决办法]
21%-5=-4
解答:
21%5=1,由于5的符号是负号,这个时候,需要将21%5的余数和-5相加得出的结果才为21%-5的值
[解决办法]
21=(-5)*(-4)+1;
则21%(-5)=1
21=(-5)*(-5)+(-4);
则21%(-5)=-4