簡體   English   中英

試圖在 Java 中使用數組,但不知道我做錯了什么

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM