下面的程序哪里错了,请问

 int [] array = new int []{1,3,-1,5,-2};
  int [] newArray = new int []{array.length};
  System.out.println("原数组为:");
  for (int i = 0; i < array.length; i++) {
   System.out.println(array[i]+"");
   
  }
  for (int i = array.length-1; i>= 0; i--) {
   if (array[i]<0) {
    continue;
    
   }
   newArray[array.length-i-1] = array[i];
  }
  System.out.println("倒序后的新数组为:");
  for (int i = 0; i < newArray.length; i++) {
    System.out.println(newArray[i]+"");
    
  }

地方去
浏览 1384回答 2
2回答

阿旭_

新数组的长度设置的不正确int[] newArray = new int[] { array.length };//这里表示新数组的长度只有1,并且里面的值为5 int[] newArray = new int[array.length];//长度要写到方括号内你的需求是倒序输出吗?为什么要加判断是否小于0呢?   if (array[i]<0) {//个人觉得没必要啊,可以去掉,不然最终的结果数组里有些值还是0     continue;         }精简代码后结果import java.util.Arrays; public class Test32 { public static void main(String[] args) { int[] array = new int[] { 1, 3, -1, 5, -2 }; System.out.println("原数组:"+Arrays.toString(array)); for (int i = 0; i < array.length/2; i++) { array[i] = array[i]^array[array.length-i-1]; array[array.length-i-1] = array[i]^array[array.length-i-1]; array[i] = array[i]^array[array.length-i-1]; } System.out.println("倒序后:"+Arrays.toString(array)); } }

Crafon

int [] newArray = new int []{array.length};这句错了,你想声明一个大小是array.length的newArray,但是你这里只是声明了一个只包含一个元素的数组。应该是int [] newArray = new int[array.length];实测正确。望采纳
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java