Java - Tìm phần tử có giá trị lớn nhất và nhỏ nhất trên đường chéo chính của một ma trận vuông.

Viết chương trình nhập vào một ma trận vuông, sau đó tìm và in ra phần tử có giá trị lớn nhất, nhỏ nhất nằm trên đường chéo chính của ma trận vuông đó.

Bài giải

-------------------- ######## --------------------

Để giải bài này, chúng ta sẽ sử dụng vòng lặp for duyệt ma trận từ phần tử đầu đến phần tử cuối để tìm ra hai phần tử có chỉ số dòng = chỉ số cột (vì là phần tử nằm trên đường chéo chính) và có giá trị lớn nhất và nhỏ nhất trong ma trận.

Bài giải
public static void main(String[] args) {
	int n;	// bậc của ma trận vuông
	Scanner scanner = new Scanner(System.in);
		
	System.out.println("Nhập vào bậc của ma trận: ");
	n = scanner.nextInt();
		
	int A[][] = new int[n][n];
		
	System.out.println("Nhập các phần tử cho ma trận: ");
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++) {
			System.out.print("A[" + i + "]["+ j + "] = ");
			A[i][j] = scanner.nextInt();
		}
	}
		
	System.out.println("Ma trận A vừa nhập:");
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++) {
			System.out.print(A[i][j] + "\t");
		}
		System.out.println("\n");
	}
		
	int max = A[0][0];
	int min = A[0][0];
		
	// các phần tử nằm trên đường chéo chính
	// là các phần tử có chỉ số dòng = chỉ số cột
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++) {
			if (i == j && max < A[i][j]) {
				max = A[i][j];
			}
				
			if (i == j && min > A[i][j]) {
				min = A[i][j];
			}
		}
	}
		
	System.out.println("Phần tử lớn nhất nằm trên đường chéo chính = " + max);
	System.out.println("Phần tử nhỏ nhất nằm trên đường chéo chính = " + min);

}

Kết quả sau khi biên dịch chương trình:

Trở thành Android Developer chuyên nghiệp với 30h học
Bạn muốn trở thành một nhà phát triển mobile app trên nền tảng Android? Vậy thì đây là khóa học rất phù hợp với bạn, chi phí rẻ, học online tại nhà.
XEM NGAY

Nguồn: freetuts.net