Java 我的反转阵列的输出有问题
好的,我有我的代码,一切都很好,但我不明白为什么我的输出给我两个反转,而不是一个反转。最后一个是正确的,但反转的第一个输出有点混淆Java 我的反转阵列的输出有问题,java,arrays,reverse,Java,Arrays,Reverse,好的,我有我的代码,一切都很好,但我不明白为什么我的输出给我两个反转,而不是一个反转。最后一个是正确的,但反转的第一个输出有点混淆 public class ICE17 { static //Examine the following program: class ArrayProblems { public static void main(String[] args) { int[] val = { 0
public class ICE17 {
static //Examine the following program:
class ArrayProblems {
public static void main(String[] args) {
int[] val = { 0, 1, 2, 3 };
int sum = 0; //write code here
for (int i = 0; i < val.length; i++) {
sum += val[i];
}
System.out.println("Sum of all numbers = " + sum);
reverse();
}
public static void reverse() {
int[] val = { 0, 1, 2, 3 };
//int temp=0;
System.out.println("Original Array: " + val[0] + " " + val[1] + " " + val[2] + " " + val[3]);
// write code here to reverse the order of the numbers in the array
for (int i = 0; i < val.length / 2; i++) {
int temp = val[i];
val[i] = val[val.length - 1 - i];
val[val.length - 1 - i] = temp;
System.out.println("Reversed Array: " + val[0] + " " + val[1] + " " + val[2] + " " + val[3]);
}
}
}
}
公共类ICE17{
静态//检查以下程序:
类数组问题{
公共静态void main(字符串[]args){
int[]val={0,1,2,3};
int sum=0;//在此处编写代码
对于(int i=0;i
检查你的花括号
for (int i = 0; i < val.length / 2; i++) {
int temp = val[i];
val[i] = val[val.length - 1 - i];
val[val.length - 1 - i] = temp;
System.out.println("Reversed Array: " + val[0] + " " + val[1] + " " + val[2] + " " + val[3]);
}
for(int i=0;i
如您所见,每次for循环运行时,您都会打印出反向数组在第一个循环中,反转没有完成,所以打印出来有点滑稽。检查你的花括号
for (int i = 0; i < val.length / 2; i++) {
int temp = val[i];
val[i] = val[val.length - 1 - i];
val[val.length - 1 - i] = temp;
System.out.println("Reversed Array: " + val[0] + " " + val[1] + " " + val[2] + " " + val[3]);
}
for(int i=0;i
如您所见,每次for循环运行时,您都会打印出反向数组在第一个循环中,反转没有完成,所以打印出来有点滑稽。埃里克正确地回答了修复打印问题的问题。您正在for循环中打印数组,因此它将打印长度/2次 反向方法的另一件事是创建一个本地数组并将其反向。如果确实要反转在main方法中创建的数组,请编写一个函数,将数组作为输入,如下所示:
public class ICE17 {
public static void reverseArray(int[] val) {
for (int i = 0; i < val.length / 2; i++) {
int temp = val[i];
val[i] = val[val.length - 1 - i];
val[val.length - 1 - i] = temp;
}
}
public static void printArray(int[] val) {
for(int i: val) {
System.out.print(i + " ");
}
System.out.println();
}
public static void main(String[] args) {
int arr[] = { 0, 1, 2, 3 };
System.out.println("Array before reverse");
printArray(arr);
reverseArray(arr);
System.out.println("Array after reverse");
printArray(arr);
}
}
公共类ICE17{
公共静态无效反向通道(int[]val){
对于(int i=0;i
埃里克解决了印刷问题,回答正确。您正在for循环中打印数组,因此它将打印长度/2次
反向方法的另一件事是创建一个本地数组并将其反向。如果确实要反转在main方法中创建的数组,请编写一个函数,将数组作为输入,如下所示:
public class ICE17 {
public static void reverseArray(int[] val) {
for (int i = 0; i < val.length / 2; i++) {
int temp = val[i];
val[i] = val[val.length - 1 - i];
val[val.length - 1 - i] = temp;
}
}
public static void printArray(int[] val) {
for(int i: val) {
System.out.print(i + " ");
}
System.out.println();
}
public static void main(String[] args) {
int arr[] = { 0, 1, 2, 3 };
System.out.println("Array before reverse");
printArray(arr);
reverseArray(arr);
System.out.println("Array after reverse");
printArray(arr);
}
}
公共类ICE17{
公共静态无效反向通道(int[]val){
对于(int i=0;i
啊!非常感谢。我一定累了,真不敢相信我没看到!啊!!非常感谢。我一定累了,真不敢相信我没看到!