【发布时间】:2015-09-02 06:04:34
【问题描述】:
我现在正在学习 C 基础知识。我有一个让我有点困惑的问题。
我的问题是以下程序的输出如何 - 2 ?
#include<stdio.h>
int main()
{
printf("%d", -5%3);
return 0 ;
}
【问题讨论】:
-
那不是编程,是数学……
-
根据您使用
%或` with negative numbers gives you different results. In TheC89` 标准编译程序的C标准,说明如果任一操作数应为负数,则表示除法或取模的结果可以向上或向下舍入。所以-5 \ 3可以是-1或-2。对于%的情况,如果x和y两个数字中的任何一个为负数,则x % y的符号取决于C89中的实现。在C99中,除法的结果被截断为零。这意味着-5 \ 3是-1而-5 % 3是-2。
标签: c printf modular-arithmetic