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]+""); }
2 回答
已采纳
阿旭_
TA贡献217条经验 获得超353个赞
新数组的长度设置的不正确
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
TA贡献63条经验 获得超30个赞
int [] newArray = new int []{array.length};
这句错了,你想声明一个大小是array.length的newArray,但是你这里只是声明了一个只包含一个元素的数组。
应该是int [] newArray = new int[array.length];
实测正确。望采纳
添加回答
举报
0/150
提交
取消