?int [] array = new int []{1,3,-1,5,-2};??int [] newArray = new int []{array.length};??System.out.println("原數(shù)組為:");??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("倒序后的新數(shù)組為:");??for (int i = 0; i < newArray.length; i++) {????System.out.println(newArray[i]+"");??????}
2 回答
已采納

阿旭_
TA貢獻217條經(jīng)驗 獲得超353個贊
新數(shù)組的長度設(shè)置的不正確
int[]?newArray?=?new?int[]?{?array.length?};//這里表示新數(shù)組的長度只有1,并且里面的值為5 int[]?newArray?=?new?int[array.length];//長度要寫到方括號內(nèi)
你的需求是倒序輸出嗎?為什么要加判斷是否小于0呢?
???if?(array[i]<0)?{//個人覺得沒必要啊,可以去掉,不然最終的結(jié)果數(shù)組里有些值還是0 ????continue; ???? ???}
精簡代碼后結(jié)果
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("原數(shù)組:"+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條經(jīng)驗 獲得超30個贊
int [] newArray = new int []{array.length};
這句錯了,你想聲明一個大小是array.length的newArray,但是你這里只是聲明了一個只包含一個元素的數(shù)組。
應(yīng)該是int [] newArray = new int[array.length];
實測正確。望采納
添加回答
舉報
0/150
提交
取消