【发布时间】:2014-04-19 01:49:34
【问题描述】:
我有一个问题,关于一些试图环绕我试图在 C 编程语言中转换的数字序列的问题。在我通过循环计算的数字序列中找到的第一个值最终会被丢弃。下面是代码现在的样子:
numbers[d] = numbers[x];
for (d = y-1; d >=0; d --){
numbers[d] = numbers[(d - 1) % y];
printf(" numbers[d] = %d \n", numbers[d]);
}
这是我从上一个循环中计算出的数字[x]:
1, 17, 3, 15, 14, 6, 12, 8, 10
这是数字[d] 当前的样子:
17, 3, 15, 14, 6, 12, 8, 10, 10
...它应该是这样的:
17, 3, 15, 14, 6, 12, 8, 10, 1
似乎它没有将 1 包裹到最后。我的循环中是否缺少条件?谢谢!
【问题讨论】:
-
欢迎来到 Stack Overflow。请尽快阅读About 页面。循环开始前
d的值是多少?x的值是多少?请注意,当被除数为负且除数为正时,%(模数)运算符返回负值。当您到达d == 0时,您正在从(d - 1) % y复制,即-1。
标签: c loops circular-permutations