Kevin - 1 year ago 42

Java Question

I'm working on a test prep program. Its not homework or for a grade, i just need help finishing and fixing it so i can study and better understand how it works. the directions are "Write a program named Matrix1.java that randonly fills in 0s and 1s into an n-by-n matrix, prints the matrix." I'm still pretty new to coding so any help would be greatly appreciated. This is the code i have so far:

`public class Matrix1{`

public static void main(String[] args){

Matrix1 matrix=new Matrix1(5);

matrix.fill();

matrix.print();

}

public Matrix1(int n){

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

}

public void fill(int n){ // randomly fill in 0s and 1s

Random rand = new Random();

for(int i = 0; i < n; i++){

for(int j = 0; j < n; j++){

Integer r = rand.nextInt;

matrix[i][j] = Math.abs(r);

}

}

}

public void print(int[][]matrix, int n){ //print the matrix, each row is printed in a separate line

for(int i = 0; i< n; i++){

for(int j = 0; j<n; j++){

System.out.println(array[i][j]);

}

}

}

}

i ended up confusing myself and im not sure how to fix it or continue. i think im partially on the right track though. Thank you!

Answer Source

Your code after fixes.

```
import java.util.Random;
public class Matrix1 {
private final int[][] matrix;
private final int n;
public Matrix1(int n) {
this.n = n;
this.matrix = new int[n][n];
}
/**
* randomly fill in 0s and 1s
*/
public void fill() {
Random rand = new Random();
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
matrix[i][j] = rand.nextBoolean() ? 1 : 0;
}
}
}
/**
* print the matrix, each row is printed in a separate line
*/
public void print() {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.print(matrix[i][j]);
}
System.out.println();
}
}
public static void main(String[] args) {
Matrix1 matrix = new Matrix1(5);
matrix.fill();
matrix.print();
}
}
```