这里的问题是您从 的最后一个索引开始插入项目b,但您从第一个索引开始输出它们。复制项目的代码是正确的,但是您需要调整将结果输出到控制台的行,以b使用您刚刚用于插入项目的相同索引来显示项目。
请注意,您还可以进行一些其他改进,例如使用数组初始化语法 for a,使用a.Lengthto 实例化b而不是硬编码数字,删除未使用的temp变量,使用i < a.Lengthforfor条件(而不是i <= Length - 1,它对每次迭代),并将b索引存储在变量中而不是计算两次:
static void Main()
{
int[] a = new int[] {1, 2, 45, 4, 5, 6, 7};
int[] b = new int[a.Length];
for (int i = 0; i < a.Length; i++)
{
int bIndex = b.Length - i - 1;
b[bIndex] = a[i];
Console.WriteLine(b[bIndex]);
}
Console.ReadLine();
}
但是,这仍将按照您插入它们的顺序输出项目,这将与它们在 中出现的顺序相同a。如果要显示 中的项目b与 相反a,最简单的方法是在填充后执行b。请注意,我们可以使用string.Join此处的方法将每个项目用逗号连接起来:
static void Main()
{
int[] a = new int[] {1, 2, 45, 4, 5, 6, 7};
int[] b = new int[a.Length];
for (int i = 0; i < a.Length; i++)
{
b[b.Length - i - 1] = a[i];
}
Console.WriteLine($"'a' array: {string.Join(",", a)}");
Console.WriteLine($"'b' array: {string.Join(",", b)}");
Console.ReadLine();
}
输出
