编写java一个程序,在一个 4*$的矩阵中数据填入 0 和 1,打印该矩阵,找 到第一个具有最多 1 的行和列。
时间: 2023-08-31 21:32:18 浏览: 93
### 回答1:
```java
import java.util.Random;
public class Matrix {
public static void main(String[] args) {
int[][] matrix = new int[4][4];
Random random = new Random();
// 随机填充矩阵
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[0].length; j++) {
matrix[i][j] = random.nextInt(2);
}
}
// 打印矩阵
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[0].length; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
int maxRow = 0; // 最多1的行
int maxCol = 0; // 最多1的列
int maxCount = 0; // 最多1的个数
// 找到最多1的行和列
for (int i = 0; i < matrix.length; i++) {
int count = 0; // 当前行1的个数
for (int j = 0; j < matrix[0].length; j++) {
if (matrix[i][j] == 1) {
count++;
}
}
if (count > maxCount) {
maxCount = count;
maxRow = i;
}
}
for (int j = 0; j < matrix[0].length; j++) {
int count = 0; // 当前列1的个数
for (int i = 0; i < matrix.length; i++) {
if (matrix[i][j] == 1) {
count++;
}
}
if (count > maxCount) {
maxCount = count;
maxCol = j;
}
}
System.out.println("最多1的行:" + maxRow);
System.out.println("最多1的列:" + maxCol);
}
}
```
### 回答2:
首先,我们可以编写一个程序来生成一个4行4列的矩阵,并将数据填入0和1。这里我们可以使用随机数生成器来生成0和1,并使用嵌套循环来填充矩阵。
接下来,在打印矩阵的同时,我们可以统计每行和每列中1的个数,并记录最多1的行和列的索引。
最后,我们输出具有最多1的行和列的索引。下面是一个示例程序的实现:
```
import java.util.Random;
public class MaxOnes {
public static void main(String[] args) {
int[][] matrix = new int[4][4];
Random random = new Random();
int maxRow = -1; // 最多1的行索引
int maxCol = -1; // 最多1的列索引
int maxCount = 0; // 最多的1的个数
// 填充矩阵并统计最多的1个数
for (int i = 0; i < 4; i++) {
int count = 0; // 当前行的1的个数
for (int j = 0; j < 4; j++) {
matrix[i][j] = random.nextInt(2);
count += matrix[i][j];
}
// 更新最多1的行索引和个数
if (count > maxCount) {
maxCount = count;
maxRow = i;
}
}
// 统计每列的1的个数并更新最多的列索引
for (int j = 0; j < 4; j++) {
int count = 0; // 当前列的1的个数
for (int i = 0; i < 4; i++) {
count += matrix[i][j];
}
// 更新最多1的列索引
if (count > maxCount) {
maxCount = count;
maxCol = j;
}
}
// 打印矩阵
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
System.out.println("具有最多1的行索引: " + maxRow);
System.out.println("具有最多1的列索引: " + maxCol);
}
}
```
运行上述程序,将会输出一个4行4列的矩阵,并找到具有最多1的行和列的索引。
### 回答3:
下面是一个如何编写Java程序来实现你的要求的示例:
```java
public class MatrixExample {
public static void main(String[] args) {
int[][] matrix = generateMatrix(4);
printMatrix(matrix);
int maxRow = findMaxRow(matrix);
int maxCol = findMaxColumn(matrix);
System.out.println("具有最多1的行: " + maxRow);
System.out.println("具有最多1的列: " + maxCol);
}
// 生成一个4*4的矩阵,数据填入0和1
public static int[][] generateMatrix(int size) {
int[][] matrix = new int[size][size];
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
matrix[i][j] = (int) (Math.random() * 2);
}
}
return matrix;
}
// 打印矩阵
public static void printMatrix(int[][] matrix) {
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[0].length; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
}
// 找到具有最多1的行
public static int findMaxRow(int[][] matrix) {
int maxRow = 0;
int maxOnes = 0;
for (int i = 0; i < matrix.length; i++) {
int ones = 0;
for (int j = 0; j < matrix[0].length; j++) {
if (matrix[i][j] == 1) {
ones++;
}
}
if (ones > maxOnes) {
maxOnes = ones;
maxRow = i;
}
}
return maxRow;
}
// 找到具有最多1的列
public static int findMaxColumn(int[][] matrix) {
int maxCol = 0;
int maxOnes = 0;
for (int j = 0; j < matrix[0].length; j++) {
int ones = 0;
for (int i = 0; i < matrix.length; i++) {
if (matrix[i][j] == 1) {
ones++;
}
}
if (ones > maxOnes) {
maxOnes = ones;
maxCol = j;
}
}
return maxCol;
}
}
```
上述程序首先生成一个4x4的矩阵,并将元素随机填为0或1。然后打印出该矩阵。接下来,通过遍历矩阵找到具有最多1的行和列。最后,输出找到的最多1的行和列。
希望这可以帮助到你!如果你有任何其他问题,请随时提问。
阅读全文