![](/img/trans.png)
[英]Sometimes I don't know which classes certain methods belong to. What am I doing wrong?
[英]trying to work with arrays in java but don't know what i am doing wrong
我正在嘗試實現以下結構,
100 200 300 400 500 600 700 800
200 400 600 800 1,000 1,200 1,400 1,600
我嘗試使用以下代碼,但無法使其正常工作。
public class Main {
public static void main(String[] args) {
int cols = 5;
int rows = 4;
int number = 100;
int [][] doublearr = new int [rows][cols];
for (int i = 0; i < doublearr.length ;i ++){
for(int j=0; j < doublearr[i].length; j++){
doublearr[0][0] = number;
doublearr[i][j] = doublearr[0][0] *( j+1);
System.out.print("\t" + doublearr[i][j]);
}
System.out.println();
}
}
}
這是我為此得到的輸出。
100 200 300 400 500
100 200 300 400 500
100 200 300 400 500
100 200 300 400 500
如果有人能指出我正確的方向,我真的很感激。 提前致謝。
您想將列更改為8
並將行更改為2
因為您的輸出值為8 * 2 = 16
。 你的方程是doublearr[0][0] * (j + 1)
如果你的方程是doublearr[0][0] * (j + 1)
:
1. 100 * (0 + 1) = 100
2. 100 * (1 + 1) = 200
3. 100 * (2 + 1) = 300
4. 100 * (3 + 1) = 400
5. 100 * (4 + 1) = 500
6. 100 * (5 + 1) = 600
7. 100 * (6 + 1) = 700
8. 100 * (7 + 1) = 800
9. 100 * (0 + 1) = 100
10. 100 * (1 + 1) = 200
11. 100 * (2 + 1) = 300
12. 100 * (3 + 1) = 400
13. 100 * (4 + 1) = 500
14. 100 * (5 + 1) = 600
15. 100 * (6 + 1) = 700
16. 100 * (7 + 1) = 800
如果方程更改為doublearr[0][0] * (j + 1) * (i + 1)
:
1. 100 * (0 + 1) * (0 + 1)= 100
2. 100 * (1 + 1) * (0 + 1)= 200
3. 100 * (2 + 1) * (0 + 1)= 300
4. 100 * (3 + 1) * (0 + 1)= 400
5. 100 * (4 + 1) * (0 + 1)= 500
6. 100 * (5 + 1) * (0 + 1)= 600
7. 100 * (6 + 1) * (0 + 1)= 700
8. 100 * (7 + 1) * (0 + 1)= 800
9. 100 * (0 + 1) * (1 + 1)= 200
10. 100 * (1 + 1) * (1 + 1)= 400
11. 100 * (2 + 1) * (1 + 1)= 600
12. 100 * (3 + 1) * (1 + 1)= 800
13. 100 * (4 + 1) * (1 + 1)= 1000
14. 100 * (5 + 1) * (1 + 1)= 1200
15. 100 * (6 + 1) * (1 + 1)= 1400
16. 100 * (7 + 1) * (1 + 1)= 1600
下面是我的代碼:
public class MyClass {
public static void main(String[] args) {
int cols = 8;
int rows = 2;
int number = 100;
int [][] doublearr = new int [rows][cols];
for (int i = 0; i < doublearr.length ;i ++){
for(int j=0; j < doublearr[i].length; j++){
doublearr[0][0] = number;
doublearr[i][j] = doublearr[0][0] * (j + 1) * (i + 1);
System.out.print(" " + doublearr[i][j]);
}
System.out.println();
}
}
}
如果你想打印上列的兩倍,那么你需要做一個小的改變:
for (int i = 0; i < doublearr.length ;i ++){
for(int j=0; j < doublearr[i].length; j++){
doublearr[0][0] = number;
doublearr[i][j] = doublearr[0][0] *( j+1);
System.out.print("\t" + doublearr[i][j]);
}
number*=2; // add this line
System.out.println();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.