在我的工作中,我需要计算排列产品。我将排列存储在数组中,例如int g[] = {0, 1, 2, 3, 4, 5, 6, 7};
。看起来这两个片段提供了不同的输出:
for (int r = 0; r < q; r++) {
myfile << endl << g[(H[a] + r) % q] << g[(H[b] + r) % q] << endl;
}
和
for (int r = 0; r < q; r++) {
a = g[(H[a] + r) % q];
b = g[(H[b] + r) % q];
myfile << endl << a << b << endl;
}
结果分别为:01 12 23 34 45 56 67 70和 12 23 34 45 45 56 67 70。 在某些步骤中,变量赋值不起作用。所有变量都在之前设置,q等于8.
你能解释一下,为什么会这样?谢谢!答案 0 :(得分:0)
在您的第一个示例中,变量a
和b
未更新,未初始化或使用之前在循环外初始化的值。
在第二种情况下,分配与初始种子值相互依赖,变量a
和b
逐渐更新。