我试图在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/