Nis*_*ant 0 c c++ modulo
我有一个奇怪的问题. 这是我正在处理输入和输出的代码的链接.我遇到问题的片段在这里发布
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.我真的无法理解这个问题
Gun*_*ica 8
你的第一个打印不打印ans,因为你的b是一个long long int,所以r/b是一个long long int,它有64位,你的第一个打印将打印第一个32位为r和下一个32位作为ans.你的ans从来都不是0.
请下次发布您的代码而不是链接它.
归档时间:
11 年,9 月 前
查看次数:
135 次
最近记录: