(二维数组的访问和初始化)编写一个程序,利用二维数组初始化一个如下所示的4*4矩阵,打印该矩阵,并找到第一个(从左往右第一个列、从上往下第一个行)具有最多1的行和列.用java实现
时间: 2024-11-12 22:44:25 浏览: 21
在Java中,我们可以创建一个二维数组并初始化它,然后遍历数组以查找具有最多1的行和列。以下是代码示例:
```java
public class Main {
public static void main(String[] args) {
int[][] matrix = new int[4][4]; // 初始化一个4x4的二维数组
// 随机初始化数组(这里为了演示,仅设置第一行和第一列为1)
for (int i = 0; i < 4; i++) {
matrix[i][0] = 1;
if (i == 0) {
matrix[0][i] = 1; // 第一行的第一个元素设为1
}
}
// 打印矩阵
printMatrix(matrix);
// 查找具有最多1的行和列
int maxOnesRow = findMaxOnesRow(matrix);
int maxOnesColumn = findMaxOnesColumn(matrix);
System.out.println("First row with most 1s: " + maxOnesRow);
System.out.println("First column with most 1s: " + maxOnesColumn);
}
// 打印二维数组
private static void printMatrix(int[][] matrix) {
for (int[] row : matrix) {
for (int num : row) {
System.out.print(num + " ");
}
System.out.println();
}
}
// 寻找具有最多1的行
private static int findMaxOnesRow(int[][] matrix) {
int maxOnes = 0;
for (int i = 0; i < matrix.length; i++) {
int onesInRow = countOnes(matrix[i]);
if (onesInRow > maxOnes) {
maxOnes = onesInRow;
}
}
return maxOnes;
}
// 计算给定数组的一列中1的数量
private static int countOnes(int[] row) {
int count = 0;
for (int num : row) {
if (num == 1) {
count++;
}
}
return count;
}
// 寻找具有最多1的列
private static int findMaxOnesColumn(int[][] matrix) {
int maxOnes = 0;
for (int j = 0; j < matrix[0].length; j++) {
int totalOnes = 0;
for (int i = 0; i < matrix.length; i++) {
totalOnes += matrix[i][j];
}
if (totalOnes > maxOnes) {
maxOnes = totalOnes;
}
}
return maxOnes;
}
}
```
运行这段代码后,你会看到打印出的矩阵以及第一个具有最多1的行和列的位置。如果你需要随机填充数组或其他特定模式,请替换或调整初始化部分。
阅读全文