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