史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   程式語言討論區 (http://forum.slime.com.tw/f76.html)
-   -   自己做的java習題怪怪的 (http://forum.slime.com.tw/thread257427.html)

9319074 2010-03-03 01:02 PM

自己做的java習題怪怪的
 
public static void main(String[] args) {
int[] a = {1,2,3,4,5,6,7};
int t;
for (int i=0;i < a.length / 2;i++){
t=a[i];
a[i] = a[ a.length-1-i];
a[a.length-1-i] = t;
}
for (int i=0;i<a.length-1-i;i++)
System.out.println(a[i]+" ");
}

就老師給我們一個習題,

就一個陣列 1 2 3 4 5 6 7

設計一個反轉,輸出 就是要 7 6 5 4 3 2 1

可是我自己做,

怎出來 7 6 5 而已,沒有4 3 2 1

到底哪邊寫錯了,可以大大幫忙一下嗎??感恩。

cwvdavid 2010-03-03 01:09 PM

更正....(一大早眼花, 沒看清楚)


最後的部份...
for (int i=0;i<a.length-1-i;i++)
System.out.println(a[i]+" ");



i<a.length-1-i
改成
i<a.length-1

應該就會跑出來了

ccutmis 2010-03-03 03:38 PM

try it~!
 
public static void main(String[] args) {
int[] a = {1,2,3,4,5,6,7};
int t;
for (int i=0;i < a.length / 2;i++){
t=a[i];
a[i] = a[ a.length-1-i];
a[a.length-1-i] = t;
}
for (int i=0;i<a.length-1;i++)
System.out.println(a[i]+" ");
}
//第二個for回圈是用來列出所有的陣列元素
//所以a.length-1的地方不用再-i 了~
//我沒學過java,以上是推測的....下列是剛才用javascript簡單的實作了同樣的東西...

====code in test.htm====
<script type="text/javascript">
var a = new Array(1,2,3,4,5,6,7);
alert('原始陣列:'+a.toString());
function reArr(){
var a_len=a.length-1;
//取得陣列最後一個元素的index,如果陣列長度是7,則a_len為6
var for_len=parseInt(a.length/2);
// 陣列長度除以二,取整數值,小數點無條件捨去
for(var i=0;i<for_len;i++){
var tmpVal=a[a_len-i];
a[a_len-i]=a[i];
a[i]=tmpVal;
}

}
reArr();
alert('反轉陣列:'+a.toString());
</script>

9319074 2010-03-03 05:56 PM

引用:


public static void main(String[] args) {
int[] a = {1,2,3,4,5,6,7};
int t;
for (int i=0;i < a.length / 2;i++){
t=a[i];
a[i] = a[ a.length-1-i];
a[a.length-1-i] = t;
}
for (int i=0;i<a.length-1;i++)
System.out.println(a[i]+" ");
}
//第二個for回圈是用來列出所有的陣列元素
//所以a.length-1的地方不用再-i 了~
//我沒學過java,以上是推測的....下列是剛才用javascript簡單的實作了同樣的東西...


==分隔線==

我剛剛照著您這樣改,

可是不會出現1

只出現 7 6 5 4 3 2 而已。

==分隔線==

已成功了

ccutmis 2010-03-03 06:00 PM

try it~2=="
 
for (int i=0;i<a.length-1;i++)
System.out.println(a[i]+" ");
}

改成...
for (int i=0;i<a.length;i++)
System.out.println(a[i]+" ");
}
即可... copy得太順了,忘了拿掉它=="


所有時間均為台北時間。現在的時間是 04:04 AM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1