【问题标题】:I want to create a method that returns a reversed array [duplicate]我想创建一个返回反转数组的方法[重复]
【发布时间】:2020-11-08 14:01:30
【问题描述】:
static int[] fun1(int[] ar){

        int[] auxarray = new int[ar.length];
        int j = ar.length;
        for (int i = 0; i < ar.length; i++) {

            auxarray[j - 1] = ar[i];
            j = j - 1;

        }

            return ar;

    
}

我曾尝试实现一个交换方法来修改同一个数组,但它不起作用(用一个 void 方法测试并在其中打印结果:与初始数组相同)

public static void main(String args[]){

        Scanner input = new Scanner(System.in);

        System.out.print("Please enter the size of the array: ");
        size = input.nextInt();
        array = new int[size];   //array and size are declared private static globally

        for(int i = 0; i<size; i++){
            array[i] = input.nextInt();
        }

        System.out.println("Your reversed string is:");
        int[] reversedarray = fun1(array);
        for(int i = 0; i < size; i++){
        System.out.print(reversedarray[i] + ' ');
        }
    }

这在所有情况下都返回 3334353637..。关于我做错了什么的任何解决方案或任何想法?

【问题讨论】:

  • 您在下面得到了答案。如果您选择了比arauxarray 更方便的名称,例如originalreversed 可能更明显。
  • fun1 中将返回数组从return ar 更改为return auxarray;
  • 所以我把这一切都整理好了。除了我弄错了数组这一事实(这是我在尝试调试时错过的一件事,因为我尝试了大约 6 种不同的方法),当我尝试打印数组时,我使用了“”而不是“”,这正在返回不需要的“3”。

标签: java arrays methods


【解决方案1】:

你的fun1有错误

  • 您返回的数组有误

您可以将其视为增强功能

你可以简单地交换同一个数组中的元素,只迭代数组长度的一半

static int[] fun1(int[] ar){
    int size = ar.length, temp;
    for (int i = 0; i < size/2; i++) {
        temp = ar[i];
        ar[i] = ar[size-1-i];
        ar[size-1-i] = temp;
    }

    return ar;
}

【讨论】:

    【解决方案2】:

    您返回了错误的数组,ar 而不是 auxarray

    【讨论】:

      【解决方案3】:

      返回auxarray 而不是ar

      【讨论】:

        猜你喜欢
        • 2016-04-05
        • 1970-01-01
        • 1970-01-01
        • 2018-12-16
        • 2020-11-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-17
        相关资源
        最近更新 更多