Java 填充垂直矩阵

Java 填充垂直矩阵,java,arrays,matrix,Java,Arrays,Matrix,我试图垂直填充矩阵,但缺少一行。你能帮助我吗?这是密码。也许有一个更简单的方法来填写一个矩阵,但我找不到它 public static void main(String[]args){ Scanner input = new Scanner(System.in); System.out.print("Enter the value of matrix: "); int n = input.nextInt(); int [][] matrix = new int

我试图垂直填充矩阵,但缺少一行。你能帮助我吗?这是密码。也许有一个更简单的方法来填写一个矩阵,但我找不到它

public static void main(String[]args){
    Scanner input = new Scanner(System.in);
    System.out.print("Enter the value of matrix: ");
    int n = input.nextInt();

    int [][] matrix = new int [n][n];


    for (int i = 1; i < matrix.length; i++) {
        matrix[0][i] = matrix[0][i -1] + n;

    }

    for(int i = 1; i < matrix.length; i++){
        for (int j = 0; j < matrix.length; j++){
        matrix[i][j] = matrix[i -1][j] + 1;

        System.out.print(matrix[i][j] + " ");

        }
            System.out.println();

    }

            input.close();
}
publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(System.in);
System.out.print(“输入矩阵的值:”);
int n=input.nextInt();
int[][]矩阵=新的int[n][n];
对于(int i=1;i
输出:
输入矩阵的值:4
1 5 9 13 
2 6 10 14 

3 7 11 15

要垂直填充矩阵,必须在外部循环中循环列,在内部(嵌套)循环中循环行。例如:

for(int j = 0; j < matrix.length; j++) {

    for(int i = 0; i < matrix.length; i++) {

        matrix[i][j] = /* The value you want to fill */;
        .../* Other stuff you wanna do */
    }
}
for(int j=0;j
您的行丢失,因为您从未在第一个循环(初始化第一行的循环)中打印它-您应该在开始时有一行0 4 10 12。但是,只使用一个嵌套循环可以更轻松地完成此操作。

有一种更简单的方法:

保留一个类似count的变量,并先在列上迭代矩阵,然后在行上迭代矩阵:

int count = 1; // or 0 if you start with 0
int[][] a = new int[n][n];
for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++) {
         a[j][i] = count; // notice j first then i 
         count++;
    }
int count=1;//如果以0开头,则为0
int[]a=新的int[n][n];
对于(int i=0;i
之后,您可以轻松打印出值:

for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++)
        System.out.println(a[i][j]);
for(int i=0;i
试试看

 public static void main(String[]args){
Scanner input = new Scanner(System.in);
System.out.print("Enter the value of matrix: ");
int n = input.nextInt();

int [][] matrix = new int [n][n];

matrix[0][0]=0;  //you have forgotten the first value
for (int i = 1; i < matrix.length; i++) {
    matrix[0][i] = matrix[0][i -1] + n;
    //initializing the first line
}

for(int i = 1; i < matrix.length; i++){
    for (int j = 0; j < matrix.length; j++){
    matrix[i][j] = matrix[i -1][j] + 1;
    }

    // re-loop to display but this time start with i=0
   for(int i = 0; i < matrix.length; i++){
    for (int j = 0; j < matrix.length; j++){
     System.out.print(matrix[i][j] + " ");
    }

        System.out.println();

}

        input.close();
}
publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(System.in);
System.out.print(“输入矩阵的值:”);
int n=input.nextInt();
int[][]矩阵=新的int[n][n];
矩阵[0][0]=0;//您忘记了第一个值
对于(int i=1;i
从填充循环中删除打印,并在最后打印。由于第二个循环从1开始,因此您缺少第一行的打印。..@TashevTD请您向上投票,因为这是解决方案。谢谢。