我有一个奇怪的问题。 Here是我正在处理输入和输出的代码的链接。 我遇到问题的片段在这里发布
printf("before modulo r= %d ,ans =%d\n",r/b,ans );
ans=(ans)%2;
printf("after modulo r = %d ,ans =%d\n",r,ans);
可以看到,在执行第24行 ans = 0 之前的第二次迭代中,之后它变为1而不是保留0,因为 0%2 = 0 。我真的无法理解这个问题
答案 0 :(得分:8)
你的第一个打印不打印ans,因为你的b是一个long long int,所以r / b是一个long long int,它有64位,你的第一个打印将打印第一个32位作为r和接下来是32位作为ans。你的ans从来都不是0。
请下次发布您的代码,而不是将其链接。