【问题标题】:Array Method Swap Value数组方法交换值
【发布时间】:2014-03-03 18:10:32
【问题描述】:

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

   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");
    }

【问题讨论】:

  • 您只是在交换之后才调用DisplayArray - 您是否也打算提前调用它?只需在前两个 Console.WriteLine 调用之间添加 DisplayArray(A);
  • @JonSkeet 哦,我知道这很有帮助,谢谢
  • 请不要在问题标题中包含有关所用语言的信息,除非没有它就没有意义。标记用于此目的。

标签: c# arrays methods swap


【解决方案1】:

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

像这样:

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),这样您就可以使用变异数组和非变异数组了。

【讨论】:

  • “……和专业程序员”我不同意。 :)
  • 这个错误对某些人来说更明显:p
【解决方案2】:

我也建议您进行一些改进:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-01
    • 2021-09-15
    相关资源
    最近更新 更多