C 圆形滚动阵列

C 圆形滚动阵列,c,C,我不发布代码,因为我不知道如何编写它,我有一个整数数组和一个由用户输入的数字“k”。程序要做的是将数组k的元素向前平移。我不知道当最后一个元素从数组中出来时该怎么做,而它们应该放在第一个单元格之间。一种价值观的循环运动。从数组的末尾返回到数组的开头。如果你在数组中的索引i处,(i+k)mod array\u length会给你圆周运动。例如,在3个长度数组的中间移动两个点: [a b c] ^ i = 1 [a b c] ? ^ i = (1 + 2) mod 3 [

我不发布代码,因为我不知道如何编写它,我有一个整数数组和一个由用户输入的数字“k”。程序要做的是将数组k的元素向前平移。我不知道当最后一个元素从数组中出来时该怎么做,而它们应该放在第一个单元格之间。一种价值观的循环运动。从数组的末尾返回到数组的开头。

如果你在数组中的索引i处,
(i+k)mod array\u length
会给你圆周运动。例如,在3个长度数组的中间移动两个点:

[a b c] 
   ^ i = 1

[a b c] ?
        ^ i = (1 + 2) mod 3

[a b c]
 ^ i = 3 mod 3 = 0

根据您实现解决方案的方式,您可能需要检查
k
array\u length
是否为互质。如果它们不是,您可能会在同一个循环中绕过阵列,而不是覆盖所有元素。

这是否回答了您的问题?