所以我有类似下面的东西,
int main()
{
int a[10];
int i=0;
int n=10000000000;
while (n!=0)
{
a[i++]=n%10;
printf("we have n is %d\n", n);
printf("we have n mod 10 is %d\n", n%10);
n/=10;
printf("we have%d\n", a[i]);
}
当 n mod 10 为 '0' 时,我总是得到一个负数,有人能告诉我为什么吗?
最佳答案
int
太小,无法容纳该数字。您得到一个溢出,导致 n
实际上是一个负数,因此您得到一个负值的模运算。
关于c - % 运算后奇怪的负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22014003/