数组问题-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]
注意:获取输出元素并将其修改为原始数组元素,因此如果我们打印原始数组即
for (int i=0; i < arr.length; i++) {
System.out.println(arr[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中数组是通过引用传递的。因此,您可以直接修改它。
public class Arraym {
static void print (int[] arr) {
for (int i = 0; i < arr.length/2; i++) {
int z = arr[arr.length/2];
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);
// No need to write to array, since it already contains the correct value.
}
}
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); // prints 57345
}
}
}
注意:我对程序做了一些额外的编辑:
- 在java中,首选
int[] variable
而不是int variable[]
。它们是相同的,但首选第一个,因为它更好地描述了类型。 - 没有必要在函数开始时声明所有变量。变量可以在函数的任何地方声明,并且只能在声明的块中可见。
- 总是缩进/格式化你的代码之前发布。