数组题——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);
}
}
`
我不确定你在问什么,所以这里有两个你可能想要的答案。
如果你想返回一个包含数据的新数组:
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);
}
}
}
我对程序做了一些额外的编辑:
int[] variable
而不是 int variable[]
。它们是相同的,但第一个更好,因为它更好地描述了类型。