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请您向上投票,因为这是解决方案。谢谢。