为什么这样写出来的代码实现不了数组元素反序?(代码如下,高手指点)
class Program
{
static void Main(string[] args)
{
int i;
String[] a ={ "3", "a", "8", "haha" };
for (i = 0; i < a.Length; i++)
{
a[i] = a[a.Length - 1 - i];
Console.WriteLine(a[i]);
}
Console.ReadKey();
}
运行结果是:haha 8 8 haha
------解决方案--------------------第1次循环结果:={ "haha", "a", "8", "haha" };
第2次循环结果:={ "haha", "8", "8", "haha" };
第3次循环结果:={ "haha", "8", "8", "haha" };
第4次循环结果:={ "haha", "8", "8", "haha" };
a[i] = a[a.Length - 1 - i]; 执行以后 a数组已经被替换、
第三次 第四次 已经不是原来的 { "3", "a", "8", "haha" };
------解决方案--------------------a[i] = a[a.Length - 1 - i];自己都把自己覆盖了,比如"haha"把"3"替换了,再也找不到"3"了,你应该借助中间变量,去做
------解决方案--------------------C# code
int i;
String[] a = { "3", "a", "8", "haha" };
string[] b = new string[4];
for (i = 0; i < a.Length; i++)
{
b[i] = a[a.Length - 1 - i];
Console.WriteLine(b[i]);
}
//重新定义个数组变量
------解决方案--------------------
int i;
String[] a = { "3", "a", "8", "haha" };
for (i = 0; i < a.Length; i++)
{
Console.WriteLine(a[a.Length - 1 - i]);
}