数组方法交换值

时间:2014-03-03 18:10:33

标签: c# arrays methods swap

我编写了一个代码,用于交换数组的第一个和最后一个值。 我让它工作,但由于某种原因它不显示数组的原始值。它仅显示交换的值。我希望它显示原始值,并在底部显示交换值。我做错了什么?请保持简单,因为我还不熟悉编码感谢。

   static void Main(string[] args)
    {  
        int[] A = { 3, -12, 6, 9, -7, -13, 19, 35, -8, -11, 15, 27,-1 };    
        Console.WriteLine("\n=====================\n");
        Console.WriteLine("Swapping first and last element");
        SwapFirstAndLast(A);
        DisplayArray(A);
        //pause
        Console.ReadLine();

    }

    static void SwapFirstAndLast(int[] array)
       {
           int temp = array[0];
           array[0] = array[array.Length -1];
           array[array.Length - 1] =temp;
       }

    //method to display array
    static void DisplayArray(int[] array)
    {
        Console.WriteLine("\n===========================\n");
        for (int i = 0; i < array.Length; i++)
        {
            Console.Write("{0} ",array[i]);
        }
        Console.WriteLine("\n===========================\n");
    }

2 个答案:

答案 0 :(得分:2)

正如乔恩所说,你需要在变异DisplayArray(A);之前致电int[] A = { 3, -12, 6, 9, -7, -13, 19, 35, -8, -11, 15, 27,-1 };

像这样:

int[] A = { 3, -12, 6, 9, -7, -13, 19, 35, -8, -11, 15, 27,-1 };
Console.WriteLine("The array I want to change:");
DisplayArray(A);
Console.WriteLine("\n=====================\n");
Console.WriteLine("Swapping first and last element");
SwapFirstAndLast(A);
DisplayArray(A);
//pause
Console.ReadLine();

所有初学者和专业程序员的常见错误:)。下一次,逐行逐步执行main方法,并告诉自己这个特定代码行的作用。如果它与您想要做的不一致,那么现在您注意到存在问题:)。

或者你可以使用两个数组,比如说A是你的输入数组,将A指定为B,然后使用SwapFirstAndLast(B),这样你就可以使用两个数组非变异数组供使用。

答案 1 :(得分:0)

我也建议你做一些改进:

static void Main(string[] args)
    {  
        int[] A = { 3, -12, 6, 9, -7, -13, 19, 35, -8, -11, 15, 27,-1 };    
        DisplayArray(A);
        Console.WriteLine("\n=====================\n");
        Console.WriteLine("Swapping first and last element");
        SwapFirstAndLast(A);
        DisplayArray(A);
        //pause
        Console.ReadLine();

    }

    static void SwapFirstAndLast(int[] array)
       {
           //Equal than yours
       }

    //method to display array
    static void DisplayArray(int[] array)
    {
        Console.WriteLine("\n===========================\n");
        Console.WriteLine(string.Join(",", array);
        Console.WriteLine("\n===========================\n");
    }

Console.WriteLine(string.Join(“”,array);将使您的输出类似于:

3,-12,6,9,-7,-13,19,35,-8,-11,15,27,-1

然后交换:

-1,-12,6,9,-7,-13,19,35,-8,-11,15,27,3