英文:
Print array with specific conditions as below in java
问题
数组问题 - 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'
我尝试过这个并获得了输出,但如何将输出转换为数组元素并填充到一个空数组中,并引用原始数组?
英文:
Array Question - int[] arr={1,2,3,4,5}
First find out middle element of array
Addition 1st element of array to right side closest element of middle element i.e arr[0] + arr[3] = 1 + 4 = 5
Again add 2nd element of array to next right side element of middle element i.e. arr[1] + arr[4] = 2 + 5 = 7
Print this sums up to middle element after middle element array should print elements as a original array and get output as [5,7,3,4,5]
Note: get output elements and modify them as a original array elements so if we print original array i.e.
for (int i=0; i < arr.length; i++) {
System.out.println(arr[i]);
}
then output must be '5 7 3 4 5'
I tried this and I got output but how can I convert output in array elements and fill it to an empty array and refer to original array
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);
}
}
答案1
得分: -1
在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);
// 对数组的每个元素进行写入
arr[i] = sum1;
}
for (int i = arr.length/2; i<arr.length; i++) {
int sum2=arr[i];
System.out.print(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); // 输出 57345
}
}
}
注意:对程序进行了一些额外的编辑:
- 在Java中,推荐使用
int[] variable
而不是int variable[]
。它们是一样的,但前者更好地描述了类型。 - 在函数开始时不需要声明所有变量。变量可以在函数的任何位置声明,并且只能在声明的块内可见。
- 发布前始终对代码进行缩进/格式化。
英文:
In Java arrays are passed by reference. Thus, you can just modify it directly.
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
}
}
}
Note: I've made a couple of extra edits to the program:
- In java, prefer
int[] variable
overint variable[]
. They are the same, but the first is preferable as it better describes the type. - There is no need to declare all variables at the start of the function. Variables can be declared anywhere in a function and will only be visible within the declared block.
- Always indent/format your code before posting.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论