我的其中一项功能有奇怪的行为。
程序代码非常庞大且难以阅读。所以我附上了部分功能。
如果j
小于4,则返回的不是实际余数,而是j与4之间的差。
我测试发现3 % 4 == 1
而不是3。
while (j < 16)
{
if ((crd + (j % 4)) + d * (j / 4) > d * d && str2[j] == 1)
str[0] = 2;
if (((crd + (j % 4) + d * (j / 4)) / d) - i != (j / 4) && str2[j] == 1)
str[0] = 2;
if (str2[j] == 1)
str[(crd + (j % 4)) + d * (j / 4)] = str2[16];
if (str[(crd + (j % 4)) + d * (j / 4)] == 2 || str[0] == 2)
return (str);
j++;
}
答案 0 :(得分:1)
以下建议的代码:
现在,建议的代码:
#include <stdio.h>
int main( void )
{
int a = 3 % 4;
printf( "%d\n", a );
}
编译/链接并运行时的结果是:
3
上面显示的是模运算符按预期工作。
剩下您的代码,而不是[mcve],因此产生的可能性是您的代码有问题。但是我们确实无法确定,因为我们没有您的代码,