编写一个程序,在一个4 * 4的矩阵中随机填入0和1,打印该矩阵,分别找到第一个具有最多1的行和列。
package pack2;
import java.security.SecureRandom;
public class MaxRowAndColumn {
public static void main(String[] args) {
game();
}
/**最大的行和列*/
public static void game() {
final int ROW_COLUMN= 4; //行和列
int[][] array = new int[ROW_COLUMN][ROW_COLUMN]; //数组
randomValue(array);
printMatrix(array);
System.out.println("The largest row index: " + maxRowIndex(array));
System.out.println("The largest column index: " + maxColumnIndex(array));
}
/**初始化矩阵*/
public static void randomValue(int[][] array) {
for (int i = 0; i < array.length; i++)
for (int j = 0; j < array[i].length; j++)
array[i][j] = new SecureRandom().nextInt(2);
}
/**获取最多1的行*/
public static int maxRowIndex(int[][] array) {
int sum = 0, maxRowIndex = 0, max = 0;
for (int i = 0; i < array.length; i++) {
sum = 0;
for (int j = 0; j < array[i].length; j++)
sum += array[i][j];
if(sum > max) { //获取最大行下标
max = sum;
maxRowIndex = i;
}
}
return maxRowIndex;
}
/**获取最多1的列*/
public static int maxColumnIndex(int[][] array) {
int sum = 0, maxColumnIndex = 0, max = 0;
for (int i = 0; i < array.length; i++) {
sum = 0;
for (int j = 0; j < array[i].length; j++)
sum += array[j][i];
if(sum > max) { //获取最大列下标
max = sum;
maxColumnIndex = i;
}
}
return maxColumnIndex;
}
/**打印矩阵*/
public static void printMatrix(int[][] array) {
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++)
System.out.print(" " + array[i][j]);
System.out.println();
}
}
}