java二维数组求每行最大值,每列最小值,及输出数组主对角线上的元素

时间:2021-07-18 11:18:02

总结:完全搞不懂,行和列是怎么弄的,,,,,

package com.c2;

import java.util.Scanner;

public class Oaa {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n;
System.out.print("请输入方阵的行与列:");
n = in.nextInt();
int[][] a = new int[n][n];
System.out.println("请输入方阵各个元素:");
int i, j;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++) {
System.out.print("a[" + i + "][" + j + "]=");
a[i][j] = in.nextInt();
} for (i = 0; i < n; i++) {
System.out.print("第" + (i + 1) + "行最大值:");
System.out.println(hasMax(a[i], n));
}
System.out.println();
hasMin(a, n);
// System.out.println();
print(a, n);
} private static void print(int a[][], int n) {
int i, j;
System.out.println("主对角线上的元素为:");
for (i = 0; i < n; i++)
for (j = 0; j < n; j++) {
if (i == j)
System.out.print(a[i][j] + " ");
}
} private static int hasMax(int a[], int n) {
int max = a[0];
for (int i = 1; i < n; i++)
if (max < a[i])
max = a[i];
return max;
} private static void hasMin(int a[][], int n) {
int min;
int i, j;
for (i = 0; i < n; i++) {
min = a[0][i];
for (j = 0; j < n; j++) {
if (min > a[j][i])
min = a[j][i];
}
System.out.print("第" + (i + 1) + "列最小值:");
System.out.println(min);
}
}
}
请输入方阵的行与列:3
请输入方阵各个元素:
a[0][0]=3
a[0][1]=5
a[0][2]=3
a[1][0]=6
a[1][1]=
3
a[1][2]=3
a[2][0]=5
a[2][1]=3
a[2][2]=8
第1行最大值:5
第2行最大值:6
第3行最大值:8 第1列最小值:3
第2列最小值:3
第3列最小值:3
主对角线上的元素为:
3 3 8