嗨我这里有一个示例代码,其中我试图将数组移位给定次数。在输出中我想打印经过所有轮班后生成的最终数组。
public static void Main(string[] args)
{
int[] oldArray={1,2,3,4};
int[] newArray=Program.shiftRight(oldArray,3);
foreach(var item in newArray)
Console.Write(item+ " ");
}
public static int[] shiftRight(int[] arr,int times)
{
int[] demo = new int[arr.Length];
for (int i = 0; i < arr.Length; i++)
{
demo[(i+1) % demo.Length] = arr[i];
}
foreach(var item in demo)
Console.Write(item+ " ");
Console.WriteLine("");
times--;
if(times>0)
{
shiftRight(demo,times);
}
Console.WriteLine("\n");
return demo;
}
我得到的输出是 你好,世界!
4 1 2 3
3 4 1 2
2 3 4 1
4 1 2 3
有人可以解释为什么在主要我没有得到输出为“2 3 4 1” 但是“4 1 2 3”?提前谢谢。