在 java 中打印具有特定条件的数组

问题描述 投票:0回答:1

数组题——int[] arr={1,2,3,4,5}

先找出数组的中间元素 将数组的第一个元素添加到中间元素的右侧最近元素,即 arr[0] + arr[3]= 1+4= 5 再次将数组的第二个元素添加到中间元素的下一个右侧元素,即 arr[1]+ arr[4]= 2+5= 7 在中间元素数组应将元素打印为原始数组后打印此总和到中间元素 并得到输出 [5,7,3,4,5] 注意:获取输出元素并将它们修改为原始数组元素,因此如果我们打印原始数组,即 对于 (int i=0; i

然后输出必须是'5 7 3 4 5'

我试过了,我得到了输出,但是我如何转换数组元素中的输出并将其填充到一个空数组并引用原始数组

`package javap;
public class Arraym {static void print (int arr[]){int z = arr[arr.length/2];
      int sum1=0;
      int sum2=0;
      
     
        
         for (int i = 0; i < arr.length/2; i++) {
             
            System.out.print(sum1= arr[i]+arr[i+z]) ;
         }
         for (int i = arr.length/2; i<arr.length; i++) {
              System.out.print(sum2=arr[i]);}


}
public static void main(String[] args) {
    

    int arr[]= {1,2,3,4,5};
    print(arr);
}
        

}

`

java arrays reference addition
1个回答
0
投票

我不确定你在问什么,所以这里有两个你可能想要的答案。

如果你想返回一个包含数据的新数组:

public class Arraym {
    static int[] print (int[] arr) {
        int z = arr[arr.length/2];
      
        // Create a new array of the same length as input array
        int[] output = new int[arr.length];
        
        for (int i = 0; i < arr.length/2; i++) {
            int sum1=arr[i]+arr[i+z];
            System.out.print(sum1);
            // Write to each element of the array
            output[i] = sum1;
        }
        
        for (int i = arr.length/2; i<arr.length; i++) {
              int sum2=arr[i];
              System.out.print(sum2);
              // Write to each element of the array
              output[i] = sum2;
        }
        
        // Return the array
        return output;
    }
    
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        int[] output = print(arr);
        
        System.out.println();
        for (int i : output) {
            System.out.print(i); // prints 
        }
    }   
}

如果要修改输入数组,那么直接修改即可。这是因为在 Java 中,数组是通过引用传递的。

public class Arraym {
    static void print (int[] arr) {
        int z = arr[arr.length/2];

        for (int i = 0; i < arr.length/2; i++) {
            int sum1=arr[i]+arr[i+z];
            System.out.print(sum1);
            // Write to each element of the array
            arr[i] = sum1;
        }
        
        for (int i = arr.length/2; i<arr.length; i++) {
              int sum2=arr[i];
              System.out.print(sum2);
              // Write to each element of the array
              arr[i] = sum2;
        }
    }
    
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        print(arr);
        
        System.out.println();
        for (int i : arr) {
            System.out.print(i);
        }
    }   
}

我对程序做了一些额外的编辑:

  1. 在 Java 中,更喜欢
    int[] variable
    而不是
    int variable[]
    。它们是相同的,但第一个更好,因为它更好地描述了类型。
  2. 不需要在函数的开头声明所有的变量。变量可以在函数中的任何地方声明,并且只能在声明的块中可见。
© www.soinside.com 2019 - 2024. All rights reserved.