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

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

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 

  

原文地址:https://www.cnblogs.com/langlove/p/3389439.html