C编程找到C89的输出?

Not*_*ing -4 c

C89中以下每个表达式的值是多少?(如果表达式可能包含多个值,则给出所有可能的值.)

a) 8/5 
My answer 1

b) -8/5 
A : -1

c)8/-5

A: -1

d)-8/-5
A:1

e)8 % -5
Answer: output is 3 but why? 
Also,are the other answers correct?
Run Code Online (Sandbox Code Playgroud)

oua*_*uah 6

b),c)和e)的结果是实现定义为整数除法舍入方向,负操作数是在c89中实现定义的.在c99中,舍入为零,但在c89中,它是实现定义的.

例如:

-8/5
Run Code Online (Sandbox Code Playgroud)

结果可能是-1(截断为零)或-2(截断为负无穷大).

同样的8 / -5.

8 % -5结果可以3(截断为零)或-2(截断朝向负无穷大).