我试图在c中对2个int执行mod(%),这是我第一次尝试这样的操作。
下面的代码在循环中,循环外的count设置为0,每次迭代递增1。我希望看到我的“read”值发生变化,但它仍然停留在“blah”的值上。
我做错什么了?

int blah=176400;
count+=1;
NSLog(@"the time = %i",count);// prints the correct increments
int read = (int)(blah % count);
NSLog(@"read %i",read); // prints out 1764000 all the time

最佳答案

示例代码:

#include <stdio.h>

int main() {
    int blah = 176400;
    for (int count = 1; count < 20; ++count) {
        printf("%d %% %d = %d\n", blah, count, blah % count);
    }
}

输出:
176400 % 1 = 0
176400 % 2 = 0
176400 % 3 = 0
176400 % 4 = 0
176400 % 5 = 0
176400 % 6 = 0
176400 % 7 = 0
176400 % 8 = 0
176400 % 9 = 0
176400 % 10 = 0
176400 % 11 = 4
176400 % 12 = 0
176400 % 13 = 3
176400 % 14 = 0
176400 % 15 = 0
176400 % 16 = 0
176400 % 17 = 8
176400 % 18 = 0
176400 % 19 = 4

我认为问题出在代码的其他地方。

关于c - 使用mod运算符c的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4286987/

10-11 21:17