public static void main (String[] args) { int a[][]=new int[9][9]; int counter=1; for(int row=0; row< a lengt; row++) for(int column=0; column< a[row] length; column++){ a[row][column]=counter; counter++; } } ............................宣告一陣列int a[9][9];其排列順序有三種全顯示出來一、01 02 03 04 05 06 07 08 0918 17 16 15 14 13 12 11 1019 20 21 22 23 24 25 26 2736 35 34 33 32 31 30 29 2837 38 39 40 41 42 43 44 4554 53 52 51 50 49 48 47 4655 56 57 58 59 60 61 62 6372 71 70 69 68 67 66 65 6473 74 75 76 77 78 79 80 81二、01 10 19 28 37 46 55 64 7302 11 20 29 38 47 56 65 7403 12 21 30 39 48 57 66 7504 13 22 31 40 49 58 67 7605 14 23 32 41 50 59 68 7706 15 24 33 42 51 60 69 7807 16 25 34 43 52 61 70 7908 17 26 35 44 53 62 71 8009 18 27 36 45 54 63 72 81 三、01 18 19 36 37 54 55 72 7302 17 20 35 38 53 56 71 7403 16 21 34 39 52 57 70 7504 15 22 33 40 51 58 69 7605 14 23 32 41 50 59 68 7706 13 24 31 42 49 60 67 7807 12 25 30 43 48 61 66 7908 11 26 29 44 47 62 65 8009 10 27 28 45 46 63 64 81 這是這學期最後一個作業了我一直搞不懂要怎麼寫課本裡又沒有類似的範例好頭痛哦
2006-06-13 21:36:45 · 2 個解答 · 發問者 深海兒 5 in 電腦與網際網路 ➔ 程式設計
ωετμοφντ大大
我看到你的回答了
我來run run 看
先謝謝你囉
2006-06-15 07:20:04 · update #1
你的意思應該是宣告一個 9x9 的整數陣列,裡面的數字從 1 排到 81,再用不同的迴圈方式來列印出三種不同的排列方式吧。因此我根據我的想法寫了一段程式來實作這三個排列方式,貼出來供你參考。 // first order System.out.println("First Order"); for (int i = 0; i < a.length; i++) { for (int j = 0; j < a[i].length; j++) { if (a[i][j] < 10) System.out.print("0"); System.out.print(a[i][j] + " "); } System.out.println(); } // second order System.out.println("\nSecond Order"); for (int i = 0; i < a.length; i++) { for (int j = 0; j < a[i].length; j++) { if (a[j][i] < 10) System.out.print("0"); System.out.print(a[j][i] + " "); } System.out.println(); } // third order System.out.println("\nThird Order"); for (int i = 0; i < a.length; i++) { boolean b = true; int x = 0; for (int j = 0; j < a[i].length; j++) { if (b) { x = a[j][i]; b = !b; } else { x = a[j][a[i].length - 1 - i]; b = !b; } if (x < 10) System.out.print("0"); System.out.print(x + " "); } System.out.println(); }
2006-06-19 12:15:12 補充:
抱歉,First order 有誤,重貼 // first order System.out.println("First Order"); boolean b = true; int x = 0; for (int i = 0; i < a.length; i++) { for (int j = 0; j < a[i].length; j++) { if (b) x = a[i][j]; else x = a[i][a.length-j-1];
2006-06-19 12:15:24 補充:
if (x < 10) System.out.print("0"); System.out.print(x + " "); } b = !b; System.out.println(); }
2006-06-15 05:02:23 · answer #1 · answered by ? 7 · 0⤊ 0⤋
我的想法是:
1>先在一個一維陣列 int tmp[81] 中由小到大排好。
2>真對三種排法寫三個method inserA(), insertB(), insertC(),分別用不同的方式將tmp[81] 插入目地陣列int b[9][9]
3>例如第一種排法,insertA() 的寫法大約是這樣:
void insertA()
{
int i; // i是一維陣列tmp的索引
int col, row; // 目地陣列b的索引
row=i/9;
if( (i/9)%2==0 ) // 偶數row
col=i%9;
else
col = 9 - (i%9)
b[col][row]=tmp[i];
}
4>以上的程式沒有驗證過,只是寫出想法,如果有錯還多多包含!
2006-06-14 07:09:18 · answer #2 · answered by 光宇 4 · 0⤊ 0⤋