这里的问题是您从 的最后一个索引开始插入项目b
,但您从第一个索引开始输出它们。复制项目的代码是正确的,但是您需要调整将结果输出到控制台的行,以b
使用您刚刚用于插入项目的相同索引来显示项目。
请注意,您还可以进行一些其他改进,例如使用数组初始化语法 for a
,使用a.Length
to 实例化b
而不是硬编码数字,删除未使用的temp
变量,使用i < a.Length
forfor
条件(而不是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();
}
输出