8
为什么rand()+ rand()产生负数?
我观察到该rand()库函数在循环中仅被调用一次时,几乎总是产生正数。 for (i = 0; i < 100; i++) { printf("%d\n", rand()); } 但是,当我添加两个rand()呼叫时,现在生成的数字将具有更多的负数。 for (i = 0; i < 100; i++) { printf("%d = %d\n", rand(), (rand() + rand())); } 有人可以解释为什么我在第二种情况下看到负数吗? PS:我在循环之前将种子初始化为srand(time(NULL))。